précédent | suivant | table des matières
L'interface Iterator est utilisée par l'interface Iterable.
De nombreuses classes conteneurs implémentent les méthodes de l’interface Collection : Vector, Stack, ArrayList, LinkedList, HashSet, TreeSet, Chacune de ces classes doit implémenter la méthode Iterator iterator() qui retourne un itérateur sur l’ensembles des éléments : un itérateur est un objet qui implémente l’interface Iterator, et qui a pour but de permettre le parcours des éléments d’un conteneur, sans avoir besoin de savoir de quelle nature est ce conteneur.
L’interface Iterator contient les méthodes suivantes :
boolean hasNext() |
Retourne true si l’itérateur n’est pas arrivé en fin de l’ensemble et false sinon. |
E next() |
Permet d’avancer l’itérateur, et qui retourne l’élément qui a été sauté. Lève une exception NoSuchElementException si l'itérateur n'a pas d'objet qui le suit. |
void remove() |
Supprime l’objet qui vient d’être obtenu par next. Cette méthode est facultative |
Quelque soit la collection c, on peut parcourir tous ses éléments de la façon suivante :
Iterable <E> c;
...
Iterator<E> it = c.iterator() ;
while(it.hasNext()){
E o = it.next(); // o a pour valeur un objet de la collection
. . .
}
On peut représenter les itérateurs de la façon suivante : |