Toutes les collections disposent d'une méthode Iterator iterator(), qui permet d'initialiser un itérateur, de façon analogue au int i=0 qui initialise un indice de boucle entier. Il est recommandé d'utiliser toujours un itérateur, même si la collection est une liste (voir ci-dessous) et qu'un accès par indexation des éléments est possible.
Par exemple, la procédure suivante permet de supprimer d'une collection tous les éléments qui ne satisfont pas une condition représentée par une méthode boolean cond(A a), à l'aide d'une boucle while :
static void filtre(Collection c) { Iterator i = c.iterator(); while (i.hasNext()) { A a = (A) i.next(); if (!cond(a)) i.remove(); } }
La même procédure peut s'écrire avec une boucle for :
static void filtre(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) (A) i.next() if (!cond(a)) i.remove(); }