gpt4 book ai didi

java - 为什么for循环不继续

转载 作者:行者123 更新时间:2023-12-01 21:40:55 26 4
gpt4 key购买 nike

我有以下截断代码,我想从数组 p4 中删除所有“0”。该数组将被放入数组列表 amountOfColorPoints 中。 for 循环应该一直工作到列表大小结束,但在第一个“0”被删除后,它不再执行,正如我在控制台上看到的那样。问题是什么?请有人帮助我吗?

int[] p4={0,0,4};

ArrayList<Integer> amountOfColorPoints = new ArrayList<>();

。。.

for(int p=0; p<amountOfColorPoints.size(); p++) {
if (amountOfColorPoints.get(p) == 0)
amountOfColorPoints.remove(p);}

最佳答案

从集合中删除元素(在迭代时)的安全方法是使用 Iterator.remove()正如 Javadoc 所指出的

The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method.

类似于,

Iterator<Integer> iter = amountOfColorPoints.iterator();
while (iter.hasNext()) {
if (iter.next() == 0) {
iter.remove();
}
}

关于java - 为什么for循环不继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36463535/

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