Junior — Middle
Que se passe-t-il si l'on empêche la suppression d'éléments de la collection pendant son parcours?
sobes.tech IA
Réponse de l'IA
Si, lors de l’itération d’une collection en Java, vous essayez de supprimer des éléments directement (par exemple, via la méthode de la collection), cela entraînera une ConcurrentModificationException. Cela se produit parce que l’itérateur suit les modifications de la collection, et la suppression en dehors de ses méthodes viole l’intégrité de l’itération.
La bonne façon de supprimer des éléments pendant l’itération est d’utiliser la méthode remove() de l’itérateur lui-même :
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (condition) {
iterator.remove(); // suppression sécurisée
}
}
Ainsi, la suppression ne perturbera pas le fonctionnement de l’itérateur et aucune exception ne sera levée.