У меня есть список 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 ()
;