gpt4 book ai didi

java - 将列表添加到二维数组列表

转载 作者:行者123 更新时间:2023-12-01 15:51:47 25 4
gpt4 key购买 nike

我遇到了以下问题。忽略大多数代码,我的问题是:我每次迭代都有一个不同的列表 x,我想在 2DarrayList conVert 中解析它,所以我使用 conVert.add(x);但我的问题出在 x.clear(); 上。当我在清除之前打印 conVert 时,conVert 没问题,但是当我在清除之后打印它时,除了 x 之外,conVert 也被清除。为此我能做什么呢?提前致谢

         List<Integer> x =  new ArrayList<Integer>();
// List<Integer> x1 = new ArrayList<Integer>();
List<Integer> valenceList = new ArrayList<Integer>();
List<List<Integer>> conVert = new ArrayList<List<Integer>>();


for (int q = 1; q <= 4; q++) {


for (int i = 0; i < Faces.length; i++) {

for (int j = 0; j < 2; j++) {

if (Faces[i][j] == q) {

x.add(Faces[i][0]);
x.add(Faces[i][1]);
x.add(Faces[i][2]);

}
}
}
removeDuplicateWithOrder((ArrayList) x);
valenceList.add(x.size() -1);
//x1 = x;
conVert.add(x);
System.out.println(conVert);
x.clear();
//System.out.println(conVert);
}

最佳答案

您向 conVert 添加的 x 将遵循对 x 的任何更改,因为它只是将引用放入列表中。您可以像这样复制它:

conVert.add(new ArrayList<Integer>(x));

或者,您可以将 x 的构造移至第一个 for 循环内并跳过清除。

关于java - 将列表添加到二维数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881029/

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