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