I have an ArrayList that I want to iterate over. While iterating over it I have to remove elements at the same time. Obviously this throws a java.util.ConcurrentModificationException.
What is the best practice to handle this problem? Should I clone the list first?
I remove the elements not in the loop itself but another part of the code.
My code looks like this:
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 might call Test.removeA();
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    