[英]Printing a 2D ArrayList in Java results in empty brackets
我正在嘗試讀取文件並將每 2 行放入字符串的 ArrayList 中。 我的程序有一個從 1 開始並跟蹤行的計數器,如果它在第 2 行,它將執行以下操作:
.clear()
清除行所以想法是將每兩行文本存儲為字符串的二維 ArrayList。 這是預期的輸入文件和預期的 output:
INPUT FILE: cat
dog
mouse
duck (every word is on a different line idk why SO put it on the same line)
OUTPUT: [[cat, dog],[mouse, duck]]
但是,當我使用w.println(list2D)
打印我的 2D ArrayList 時,程序輸出空虛:
[ [ ], [ ] ]
這是我的代碼:
ArrayList<ArrayList<String>> list2D = new ArrayList<ArrayList<String>>();
ArrayList<String> lines = new ArrayList<String>();
Integer lineNum = 1;
for (String line = r.readLine(); line != null; line = r.readLine()) {
lines.add(line);
if (lineNum == 2) { //line counter is at the end of block
list2D.add(lines);
lines.clear();
lineNum = 1; //reset line counter
} else {
lineNum++;
}
}
w.println(list2D);
我已經檢查了其他關於如何創建 2D ArrayList 的 SO 帖子,所以我很確定我從 for 循環中得到了一切。 當我在將 ArrayList 添加到lines2D
之前測試打印lines
,它會打印所需的結果(例如 [cat, dog]),所以至少在那之前我是正確的。
我也不確定w.println(list2D)
是否是正確的打印方法,但我再次看到使用此方法的多個其他 SO 帖子。
感謝任何幫助/批評,謝謝。
程序輸出空虛:[ [ ], [ ] ]
那是因為您只有一個 ArrayList。
您多次將 ArrayList 的引用添加到 2D ArrayList 中,但 ArrayList 中沒有數據,因為您添加了兩個條目,然后清除條目。
您需要為每兩行文本創建一個新的 ArrayList。
不需要“lineNum”變量。
您只需在 ArrayList 中添加一行文本。 當 ArrayList 的大小為 2 時,將其添加到 2D ArrayList 並為接下來的 2 行文本創建一個新的空 ArrayList。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.