Comment supprimer des éléments d'une collection dans une boucle sans ConcurrentModificationException en Java ?
Bonjour à tous ! Je suis un développeur Java débutant et j'ai rencontré une erreur très étrange. J'écris un programme simple : j'ai une liste de chaînes et je veux en supprimer tous les éléments qui commencent par la lettre "A". Cela semble logique, mais lors de l'exécution, une ConcurrentModificationException se produit.
Voici mon code :
```java
List list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Avocado", "Cherry"));
for (String fruit : list) {
if (fruit.startsWith("A")) {
list.remove(fruit);
}
}
```
L'erreur survient à l'itération après la suppression. J'ai lu qu'on ne peut pas modifier une collection pendant une boucle for-each, mais comment supprimer correctement les éléments ? J'ai besoin de modifier la liste d'origine, pas d'en créer une nouvelle.
Dites-moi, s'il vous plaît, comment faire correctement ? Quelles sont les méthodes pour supprimer en toute sécurité des éléments d'une collection pendant son parcours ? Merci d'avance !
<<>>
Problème : pourquoi ConcurrentModificationException se produit
Vous avez rencontré un cas classique