¿Cómo funciona el bucle Java "for each"?
Considera:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
..;
for (String item : someList) {
System.out.println(item);
}
¿Cómo sería el bucle for
equivalente sin utilizar la sintaxis for each?
1437
3
Ten en cuenta que si necesitas usar
i.remove();
en tu bucle, o acceder al iterador real de alguna manera, no puedes usar el modismofor ( : )
, ya que el iterador real es simplemente inferido.Como señaló Denis Bueno, este código funciona para cualquier objeto que implemente la interfaz
Iterable
.Además, si el lado derecho del modismo
for (:)
es unarray
en lugar de un objetoIterable
, el código interno utiliza un contador de índice int y comprueba contraarray.length
en su lugar. Véase la Especificación del Lenguaje Java.El bucle for-each en Java utiliza el mecanismo subyacente de los iteradores. Así que es idéntico a lo siguiente:
He aquí una expresión equivalente.