Éviter "ConcurrentModificationException" lors de la suppression d'éléments d'ArrayList pendant une itération
Lors d'une tentative de suppression d'éléments d'une ArrayList pendant une itération, comme ce qui suit exemple :
for (String str : myArrayList) { if (someCondition) { myArrayList.remove(str); } }
il est susceptible de rencontrer une « ConcurrentModificationException ». Cela se produit car ArrayList est modifié pendant l'itération, ce qui viole la propriété fail-fast.
Solution : utiliser un itérateur
Pour éviter cette exception, utilisez un itérateur et appeler la méthode remove() :
Iterator<String> iter = myArrayList.iterator(); while (iter.hasNext()) { String str = iter.next(); if (someCondition) iter.remove(); }
En utilisant un Iterator, les modifications de l'ArrayList lors de l'itération sont géré en interne, garantissant que l'exception n'est pas levée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!