相关疑难解决方法(0)

在迭代和从ArrayList中删除元素时,如何避免java.util.ConcurrentModificationException

我有一个我想迭代的ArrayList.迭代它时,我必须同时删除元素.显然这会抛出一个java.util.ConcurrentModificationException.

处理此问题的最佳做法是什么?我应该先克隆列表吗?

我删除不在循环本身但是代码的另一部分的元素.

我的代码看起来像这样:

public class Test() {
    private ArrayList<A> abc = new ArrayList<A>();

    public void doStuff() {
        for (A a : abc) 
        a.doSomething();
    }

    public void removeA(A a) {
        abc.remove(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

a.doSomething可能打电话Test.removeA();

java foreach arraylist

185
推荐指数
11
解决办法
31万
查看次数

标签 统计

arraylist ×1

foreach ×1

java ×1