Suppression d'éléments des collections lors d'une itération
Lorsque vous travaillez avec des collections, il devient nécessaire de modifier ou de supprimer des éléments lors de l'itération. Cependant, la modification d'une collection lors d'une itération peut conduire à une ConcurrentModificationException. Pour éviter cela, plusieurs approches existent :
Itérer sur une copie de la collection
Une approche consiste à créer une copie de la collection avant d'itérer. Cela vous permet de modifier la copie sans affecter la collection originale. Voici un exemple :
List<Foo> fooListCopy = new ArrayList<>(fooList); for (Foo foo : fooListCopy) { // Modify actual fooList }
Utilisation de l'itérateur de la collection réelle
Une approche alternative consiste à utiliser l'itérateur de la collection réelle. Cette approche vous permet de modifier la collection lors de l'itération. Voici un exemple :
Iterator<Foo> itr = fooList.iterator(); while (itr.hasNext()) { // Modify actual fooList using itr.remove() }
Considérations pour le choix d'une approche
Le choix entre ces approches dépend de plusieurs facteurs :
Techniques supplémentaires pour supprimer des éléments
En plus de ces approches, Java 8 propose plusieurs autres techniques pour supprimer des éléments au cours de l'itération, notamment :
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!