Aller au contenu

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() sans next()
  • 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() → check
  • next() → lire
  • remove() → 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.


Voir aussi