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();
}
添加回答
舉報