Java — Iterator (Parcours de collection)
L’Iterator est une interface en Java qui permet de parcourir une collection de manière standard et sécurisée.
1. Idée simple
Un Iterator permet de :
- parcourir les éléments d’une collection
- sans exposer sa structure interne
2. Méthodes principales
hasNext()
vérifie s’il reste des éléments
iterator.hasNext();
next()
retourne l’élément suivant
iterator.next();
remove()
supprime l’élément courant
iterator.remove();
3. Exemple complet
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String val = it.next();
System.out.println(val);
}
4. Pourquoi utiliser Iterator ?
permet :
- parcours sécurisé
- éviter les erreurs de modification
- abstraction de la collection
5. Piège important
for (String s : list) {
list.remove(s); // ❌ erreur (ConcurrentModificationException)
}
problème :
- modification pendant l’itération
Solution avec Iterator
Iterator<String> it = list.iterator();
while (it.hasNext()) {
if (it.next().equals("B")) {
it.remove(); // ✔️ safe
}
}
6. À retenir sur remove()
- supprime le dernier élément retourné par
next() - doit être appelé après
next()
Pièges fréquents
- appeler
remove()sansnext() - modifier la liste directement
- oublier
hasNext()
7. Questions classiques
Q1
rôle de hasNext() ?
vérifier s’il reste des éléments
Q2
rôle de next() ?
retourner l’élément suivant
Q3
pourquoi utiliser remove() de l’iterator ?
éviter les erreurs de modification
8. À retenir
- Iterator = parcours sécurisé
hasNext()→ checknext()→ lireremove()→ supprimer proprement
🧾 En résumé
- permet de parcourir une collection
- évite les erreurs en modification
- standard en Java
L’Iterator est un outil simple mais essentiel pour manipuler les collections correctement.