Maison >Java >javaDidacticiel >Comment supprimer en toute sécurité des éléments d'une ArrayList lors d'une itération simultanée en Java ?
Gestion de ConcurrentModificationException lors d'une itération et d'une suppression simultanées dans ArrayList
En Java, itérer sur une collection tout en la modifiant simultanément peut entraîner un java. util.ConcurrentModificationException. Cette exception se produit lorsque la structure de la collection est modifiée au cours de l'itération en raison d'opérations d'ajout ou de suppression.
Pour contourner ce problème lorsque vous travaillez avec ArrayList, tenez compte des bonnes pratiques suivantes :
Créez une liste d'éléments à supprimer :
Gérez une liste distincte pour suivre les éléments qui doivent être supprimés. Dans la boucle, ajoutez simplement les éléments à cette liste au lieu de les supprimer directement de la liste d'origine. Une fois la boucle terminée, utilisez la méthode removeAll() d'ArrayList pour supprimer tous les éléments de la liste.
Utilisez la méthode Remove d'Iterator :
Employez la méthode Remove() disponible sur l'itérateur lui-même. Notez que cela nécessite l'abandon de la syntaxe de boucle for améliorée de Java 8 pour parcourir la liste.
Par exemple, si vous souhaitez supprimer des chaînes d'une longueur supérieure à cinq d'une ArrayList :
<code class="java">List<String> list = new ArrayList<String>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
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!