¿Qué relación hay entre Iterator<T> e Iterable<T>?
Cuando una clase implementa la interface Iterable<T>
tiene que proporcionar un método que devuelva un iterador
class X implements Iterable<T> {
public Iterator<T> iterator();
. . .
}
Java, visto que la clase tiene ese método,
permite hacer bucles de forma aún más compacta
forma compacta |
X x = new
X(...); for (T elemento: x) { . . . se hace lo que
se tenga que hacer con cada elemento } |
forma equivalente desarrollada |
X x = new X(...); Iterator<T> ite = x.iterator(); while (ite.hasNext() { T elemento = ite.next(); . . . se hace lo que
se tenga que hacer con cada elemento } |
Temas relacionados
21. Iterator<E> (interface) java.util.Iterator<E>