Hay cuatro tipos de bucles en Java: for-loop, para cada ciclo, bucle while y bucle do-while. Esta publicación proporciona una descripción general de la construcción for-each en Java.

 
los foreach-construcción es una declaración de flujo de control introducida en Java 1.5, lo que facilita la iteración de elementos en una array o una colección. El bucle For-Each generalmente se usa como un sustituto de la instrucción for estándar cuando no se necesita realmente un contador de bucle y cada elemento de la colección debe procesarse. También se conoce como el bucle for mejorado, el bucle For-Each y el ForEach declaración.

La sintaxis del bucle for mejorado es:

 
El bucle anterior se lee como "para cada elemento de tipo en iterableCollection", donde los dos puntos (:) significan en.

Nótese la diferencia entre el bucle for estándar y para cada bucle. La sintaxis está muy simplificada y el ciclo no mantiene un contador explícito: esencialmente dicen "haz esto con todo en esta colección", en lugar de "haz esto x veces".

¿Necesita un bucle for mejorado?

Considere el siguiente código, que usa un iterador para recorrer una colección.

Descargar  Ejecutar código

Resultado:

Blue
Red
Green

 
El código anterior usa un iterador para recorrer la lista, que es simplemente fea y difícil de leer. Además, tiene un gran potencial de errores ya que utiliza genéricos y se accede a la variable iterador varias veces en el código. La construcción for-each simplifica el código al ocultar la complejidad detrás de escena. (ForEach internamente invoca el iterator() método). Además, el propio compilador se ocupa de los genéricos y se conserva la seguridad de tipo del código.

Ahora veamos cómo se transforma el código anterior con la construcción for-each:

Descargar  Ejecutar código

Resultado:

Blue
Red
Green

¿Cuándo no usar el bucle for mejorado?

Hemos visto las ventajas del ciclo for-each sobre el iterador. Pero ForEach no es un simple reemplazo para el iterador. Dado que el bucle for-each oculta el iterador de una colección y la variable de índice en una array, hay algunas cosas que solo pueden hacer un iterador y un bucle for simple. Por ejemplo,

  1. No podemos eliminar ningún elemento de la colección mientras la recorremos usando ForEach. Pero se puede hacer fácilmente usando el iterador remove() método.
  2. No podemos modificar elementos en una array o una colección a medida que la recorre utilizando ForEach.
  3. No podemos iterar sobre múltiples colecciones en paralelo usando ForEach.

Más ejemplos

1. Iterando sobre una array

2. Iterando sobre una lista

3. Iterando sobre un conjunto

4. Iterando sobre un mapa

Eso es todo sobre bucle for mejorado en Java.

 
Lea también:

Bucles en Java: bucle while y do-while

Bucle for simple y bucle for mejorado en Java