繰り返し処理したい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()
。