Tengo una ArrayList sobre la que quiero iterar. Al iterar sobre él, tengo que eliminar elementos al mismo tiempo. Obviamente esto arroja a java.util.ConcurrentModificationException
.
¿Cuál es la mejor práctica para manejar este problema? ¿Debo clonar la lista primero?
Elimino los elementos no en el bucle en sí, sino en otra parte del código.
Mi código se ve así:
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
podría llamar Test.removeA()
;