Eu tenho um ArrayList que eu quero iterar. Enquanto iterando sobre isso, tenho que remover elementos ao mesmo tempo. Obviamente, isso gera um java.util.ConcurrentModificationException
.
Qual é a melhor prática para lidar com esse problema? Devo clonar a lista primeiro?
Eu removo os elementos não no próprio loop, mas em outra parte do código.
Meu código fica assim:
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
pode ligar Test.removeA()
;