我想创建一个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