Suponiendo que tiene la siguiente lista:
List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f"); |
Si desea hacer algo utilizando cada elemento de una colección, hay dos formas:
1)
list.forEach(s -> System.out.println(s)); |
2)
for(String s: list){ System.out.println(s); } |
Las dos formas anteriores imprimen los elementos en secuencia:
a b c d e f
En este caso particular, usar la expresión lambda no es mejor que usar un bucle for mejorado.
La principal ventaja de usar el método forEach () es cuando se invoca en un flujo paralelo, en ese caso no necesitamos escribir código para ejecutarlo en paralelo.
El siguiente código se ejecutará en paralelo:
list.parallelStream().forEach(s -> System.out.println(s)); |
La salida podría ser:
d f a b c e
Por lo tanto, siempre que la ejecución en paralelo pueda mejorar el rendimiento del programa, el método forEach () debe considerarse una buena opción. Siempre puede hacer una prueba A / B para su programa y ver cuál funciona mejor.