Leçon 41 : Parcourir les collections à l'aide des Iterators
Il existe plusieurs façons de boucler sur les collections, chacune ayant des capacités différentes.
1. La boucle for améliorée (For-Each)
C'est le moyen le plus simple de parcourir n'importe quelle collection (List, Set ou clés/valeurs de Map) qui implémente l'interface Iterable. Elle est en lecture seule et fortement recommandée pour sa simplicité.
java
List
for (String planet : planets) { System.out.println(planet); }
2. L'interface Iterator
Toutes les classes de Collection fournissent une méthode iterator() qui retourne un objet Iterator. C'est le seul moyen de supprimer en toute sécurité des éléments d'une collection tout en la parcourant.
Méthodes clés de l'Iterator
hasNext(): Retournetrues'il reste des éléments.next(): Retourne l'élément suivant et fait avancer l'itérateur.remove(): Supprime l'élément qui a été retourné en dernier parnext().
java import java.util.Iterator;
List
while (it.hasNext()) { Integer num = it.next(); if (num % 2 == 0) { it.remove(); // Suppression sûre } }
System.out.println(numbers); // Sortie : [1, 3, 5]
Problème de concurrence (Fail-Fast) : Si vous essayez de modifier une collection (ajouter/supprimer) à l'intérieur d'une boucle for standard ou d'une boucle for améliorée, Java lèvera une ConcurrentModificationException. La méthode Iterator.remove() est le moyen sûr de modifier une collection pendant l'itération.