gpt4 book ai didi

java - 创建列表的列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:16 25 4
gpt4 key购买 nike

我想用 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 定义为 ObjectsObject[] 数组,大小为行数,并通过执行 Object[0]Object[1] 等添加元素,但最终得到了相同的结果。

我想获得表单的最终列表

[[oddy1, minino1, libertad1],[oddy2, minino2, libertad2],[oddy3, minino3, libertad3]]

我真的不明白我的代码做错了什么。谁能帮我解决这个问题吗?

最佳答案

替换temporalRow.clear()temporalRow = new ArrayList<Object>() ,应该可以解决这个问题。现在,您的listOfRows包含对同一对象的三倍引用,并且您之前添加的元素始终会被temporalRow.clear()删除。 .

关于java - 创建列表的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42678329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com