Saya memiliki ArrayList yang ingin saya ulangi. Sementara iterasi di atasnya saya harus menghapus elemen pada saat bersamaan. Jelas ini melempar a java.util.ConcurrentModificationException
.
Apa praktik terbaik untuk menangani masalah ini? Haruskah saya mengkloning daftar terlebih dahulu?
Saya menghapus elemen tidak di dalam loop itu sendiri tetapi bagian lain dari kode.
Kode saya terlihat seperti ini:
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
mungkin memanggil Test.removeA()
;