gpt4 book ai didi

java - ArrayList.iterator() 的 ConcurrentModificationException

转载 作者:行者123 更新时间:2023-12-02 04:58:06 25 4
gpt4 key购买 nike

我有一些代码。以前是这样的,

for(Shape s: shapes){
g.setColor(Color.blue);
g.fill(sh);
g.setColor(Color.gray);
g.draw(sh);
}

但它抛出了 ConcurrentModificationException,所以我将其更改为使用这样的迭代器,

Iterator<Shape> s = shapes.iterator();
while(s.hasNext()){
Shape sh = s.next();
g.setColor(Color.blue);
g.fill(s);
g.setColor(Color.gray);
g.draw(s);
}

但它仍然抛出 ConcurrentModificationException。也许是因为它是在 Paint 方法中调用的,但那是因为它是在绘制时调用的。

最佳答案

它抛出该异常是因为在“此处有更多代码”部分,您正在修改(添加或删除)形状

如果您使用迭代器,您可以调用:

s.remove();

但仅此而已。

关于java - ArrayList.iterator() 的 ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28571909/

25 4 0