gpt4 book ai didi

java - Arraylist的ArrayList一个remove函数影响所有的Arraylists

转载 作者:行者123 更新时间:2023-11-29 10:15:16 25 4
gpt4 key购买 nike

我创建了一个包含 80 个 Arraylist 的 ArrayList。里面的每个 ArrayList 都有值 1-9。

但是,当我从其中一个数组列表中删除一个值时,它会在所有数组列表中删除。

ArrayList<List> available = new ArrayList<List>();
ArrayList<Integer> possibleValues = new ArrayList<Integer>();



for(int j = 1; j<=9; j++){
possibleValues.add(j);
}

for (int i = 0; i<=80; i++){
available.add(possibleValues);
}

int b = (int) available.get(0).get(2);
available.get(0).remove(0);
String s = available.get(80).toString();
System.out.println(" " + s);

}

感谢任何帮助。

最佳答案

这里的问题是您已将相同的 ArrayList possibleValues 添加到 available 81 次。因此,available 列表包含 81 个对同一 possibleValues 列表的引用。

对列表所做的任何更改都可以通过这 81 个引用中的任何一个看到。

如果您不希望所有引用都看到更改,只有一个,那么您需要制作 81 个列表副本以添加:

for (int i = 0; i<=80; i++){
available.add(new ArrayList<Integer>(possibleValues));
}

关于java - Arraylist的ArrayList一个remove函数影响所有的Arraylists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19594708/

25 4 0