2 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
快速瀏覽一下,我會(huì)說這里的這一行是你的問題:rows.clear();
你的rows
變量仍然指向它在你添加它之前指向的同一個(gè)列表,columns
所以如果你清除它,那么你所做的就是將一個(gè)空添加ArrayList
到columns
.
替換這一行:
rows.clear();
有了這個(gè):
rows = new ArrayList<>();
這樣,rows
變量仍然指向一個(gè)空的、全新的ArrayList
,但它ArrayList
之前指向的變量是獨(dú)立的。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
一種簡(jiǎn)單的方法是hasNextLine()用 anextLine()和字符串拆分替換循環(huán)。
所以你會(huì)用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();
}
添加回答
舉報(bào)