簡體   English   中英

在 Java 中打印 2D ArrayList 導致空括號

[英]Printing a 2D ArrayList in Java results in empty brackets

我正在嘗試讀取文件並將每 2 行放入字符串的 ArrayList 中。 我的程序有一個從 1 開始並跟蹤行的計數器,如果它在第 2 行,它將執行以下操作:

  • 將名為line的字符串的 ArrayList 添加到名為list2D 的二維 ArrayList
  • 使用.clear()清除
  • 將行計數器重置為 1

所以想法是將每兩行文本存儲為字符串的二維 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM