我想創建一個Java列表的列表,這是我正在使用的代碼。創建列表清單
public ArrayList<ArrayList<Object>> getRows(){
ArrayList<ArrayList<Object>> listOfRows = new ArrayList<ArrayList<Object>>();
ArrayList<Object> temporalRow = new ArrayList<Object>();
IntNode rowSentinel = newTable.sentinel;
for (int y = 0; y < this.numberOfRows; y++) {
for (int x = 0; x < this.numberOfColumns; x++) {
rowSentinel =rowSentinel.next;
Object rowElement = rowSentinel.arrayCol.get(y);
temporalRow.add(rowElement);
}
rowSentinel = newTable.sentinel;
listOfRows.add(temporalRow);
System.out.print(temporalRow);
System.out.println(Arrays.toString(listOfRows.toArray()));
temporalRow.clear();
}
return listOfRows;
}
然而,當我看到名單的最終名單控制檯給我下面的輸出:
[oddy1, minino1, libertad1][[oddy1, minino1, libertad1]]
[oddy2, minino2, libertad2][[oddy2, minino2, libertad2], [oddy2, minino2, libertad2]]
[oddy3, minino3, libertad3][[oddy3, minino3, libertad3], [oddy3, minino3, libertad3], [oddy3, minino3, libertad3]]
[[], [], []]
我也試圖定義listOfRows
作爲Objects
,Object[]
一個數組,大小數行,並通過做Object[0]
,Object[1]
等等添加元素,但我最終得到相同的結果。
我希望得到的形式
[[oddy1, minino1, libertad1],[oddy2, minino2, libertad2],[oddy3, minino3, libertad3]]
我真不明白我在做什麼錯誤的代碼的最終名單。任何人都可以幫助我嗎?
可能與以下內容重複:[http://stackoverflow.com/questions/1474954/working-with-a-list-of-lists-in-java](http://stackoverflow.com/questions/1474954/working -a-list-in-java) –
嘗試使用調試器,它將幫助您找出邏輯錯誤。 –
我試圖做到這一點,但我沒有看到它。我認爲,出於某種原因,每當我使用listOfRows上的add時,它都會添加temporalRow在程序中當前引用的所有內容。我真的不知道發生了什麼事。 – user284639