Maison > Java > javaDidacticiel > Comment supprimer en toute sécurité des éléments d'une liste Java pendant l'itération ?

Comment supprimer en toute sécurité des éléments d'une liste Java pendant l'itération ?

Patricia Arquette
Libérer: 2024-12-31 18:42:10
original
599 Les gens l'ont consulté

How to Safely Remove Elements from a Java List During Iteration?

Appeler Remove dans une boucle Foreach en Java

Itérer en toute sécurité à l'aide d'itérateurs

Modifier une collection tout en l'itérant à l'aide une boucle foreach peut conduire à des erreurs. Pour supprimer des éléments en toute sécurité pendant l'itération, utilisez un itérateur explicite.

List<String> names = ...
Iterator<String> i = names.iterator();
while (i.hasNext()) {
    String s = i.next();
    if (...) {
        i.remove();
    }
}
Copier après la connexion

Exception de modification simultanée

Sans utiliser d'itérateur, le code échouera avec une ConcurrentModificationException si le la collection est modifiée au cours de l’itération. L'itérateur explicite garantit que les modifications sont suivies et reflétées dans la collection sous-jacente.

Remarque sur la suppression imbriquée

Dans l'exemple fourni, la boucle while interne continue de supprimer le même élément jusqu’à ce qu’il n’existe plus. Bien que techniquement légal, cela est généralement considéré comme une mauvaise pratique, sauf s'il y a une raison très spécifique.

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 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