précédent | suivant | table des matières

Iterator

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 : 

haut de la page