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
Patricia Arquetteoriginal
2024-12-31 18:42:10601parcourir

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();
    }
}

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