Ho un ArrayList su cui voglio scorrere. Durante l'iterazione su di esso devo rimuovere gli elementi allo stesso tempo. Ovviamente questo genera a java.util.ConcurrentModificationException
.
Qual è la migliore pratica per gestire questo problema? Devo prima clonare l'elenco?
Rimuovo gli elementi non nel ciclo stesso ma un'altra parte del codice.
Il mio codice è simile al seguente:
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
potrebbe chiamare Test.removeA()
;