Ik probeer een aantal elementen uit een ArrayList
te verwijderen terwijl ik het zo laat lopen:
for (String str : myArrayList) {
if (someCondition) {
myArrayList.remove(str);
}
}
Natuurlijk krijg ik een ConcurrentModificationException
wanneer ik items uit de lijst probeer te verwijderen op hetzelfde moment als ik myArrayList
itereer. Is er een eenvoudige oplossing om dit probleem op te lossen?
Je moet de methode remove() van de iterator gebruiken, wat betekent dat er geen uitgebreide for-lus is:
for (final Iterator iterator = myArrayList.iterator(); iterator.hasNext(); ) {
iterator.next();
if (someCondition) {
iterator.remove();
}
}