首先,使用一个扫描仪,而不是每次都重新创建一个扫描仪。此外,您的for循环还会多循环一次。
Scanner sn = new Scanner(System.in);System.out.println("Give me a size ");int n = sn.nextInt();ArrayList<Integer> list = new ArrayList<Integer>();for (int i = 0; i < n; i++){ System.out.println("Give me a number "); int in = sn.nextInt(); list.add(in);}sn.close();
这对我来说很好,最后列表包含了我输入的所有数字。
您可以通过打印列表进行测试:
System.out.println(list);
与旧代码的问题是,当你使用
.close()的扫描仪,它关闭底层
InputStream,这是
System.in。如果关闭
System.in,则无法在下一个扫描仪中再次使用它。这就是使用一台扫描仪可解决此问题的原因。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)