2 回答
TA贡献2036条经验 获得超8个赞
快速浏览一下,我会说这里的这一行是你的问题:rows.clear();
你的rows
变量仍然指向它在你添加它之前指向的同一个列表,columns
所以如果你清除它,那么你所做的就是将一个空添加ArrayList
到columns
.
替换这一行:
rows.clear();
有了这个:
rows = new ArrayList<>();
这样,rows
变量仍然指向一个空的、全新的ArrayList
,但它ArrayList
之前指向的变量是独立的。
TA贡献1802条经验 获得超5个赞
一种简单的方法是hasNextLine()用 anextLine()和字符串拆分替换循环。
所以你会用nextLine()
ArrayList<Integer> row;
ArrayList<ArrayList<Integer>> columns = new ArrayList<ArrayList<Integer>>();
try {
Scanner s = new Scanner(new File("1.txt"));
while (s.hasNextLine()) {
String[] temp = s.nextLine().split(" ");
row = new ArrayList<Integer>();
for(String i : temp) ints.add(Integer.parseInt(i));
columns.add(row);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
添加回答
举报