我有一个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);
}
}
a.doSomething
可能会调用Test.removeA()
;