Maison > Java > javaDidacticiel > le corps du texte

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

Barbara Streisand
Libérer: 2024-10-30 20:34:30
original
346 Les gens l'ont consulté

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();
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal