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