Maison  >  Article  >  Java  >  Comment éviter ConcurrentModificationException lors de la suppression d'éléments d'une ArrayList ?

Comment éviter ConcurrentModificationException lors de la suppression d'éléments d'une ArrayList ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 20:34:30253parcourir

How to Avoid ConcurrentModificationException When Removing Elements from an ArrayList?

Comment surmonter l'exception ConcurrentModificationException lors du parcours et de la suppression d'éléments d'une ArrayList

Itérer sur une ArrayList tout en supprimant simultanément des éléments peut déclencher le fameux Java. util.ConcurrentModificationException. Pour résoudre ce problème, il existe plusieurs bonnes pratiques à prendre en compte.

Une approche consiste à créer une liste distincte des éléments que vous souhaitez supprimer. Pendant l'itération de la boucle, ajoutez ces éléments à la liste secondaire, et une fois l'itération terminée, appelez la méthode originalList.removeAll(valuesToRemove).

Vous pouvez également utiliser la méthode remove() directement sur l'itérateur. Notez que cette technique vous oblige à éviter la boucle for améliorée. Par exemple, pour éliminer les chaînes dépassant une longueur de 5 d'une liste :

List<String> list = new ArrayList<String>();

for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String value = iterator.next();
    if (value.length() > 5) {
        iterator.remove();
    }
}

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn