Java proporciona un nuevo método forEach() para iterar los elementos. Se define en la interfaz Iterable y Stream. Es un método predeterminado definido en la interfaz Iterable. Las clases de colección que extienden la interfaz Iterable pueden usar el bucle forEach para iterar elementos.
Este método toma un único parámetro que es una interfaz funcional. Entonces, puedes pasar una expresión lambda como argumento.
Firma forEach() en interfaz iterable
default void forEach(Consumeraction)
Java 8 para cada() ejemplo 1
import java.util.ArrayList; import java.util.List; public class ForEachExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing lambda expression--------------'); gamesList.forEach(games -> System.out.println(games)); } }
Producción:
------------Iterating by passing lambda expression-------------- Football Cricket Chess Hocky
Java 8 para cada() ejemplo 2
import java.util.ArrayList; import java.util.List; public class ForEachExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing method reference---------------'); gamesList.forEach(System.out::println); } }
Producción:
------------Iterating by passing method reference--------------- Football Cricket Chess Hocky
Método Java Stream forEachOrdered()
Junto con el método forEach(), Java proporciona un método más paraEachOrdered(). Se utiliza para iterar elementos en el orden especificado por la secuencia.
Firma:
void forEachOrdered(Consumer action)
Ejemplo de método Java Stream forEachOrdered()
import java.util.ArrayList; import java.util.List; public class ForEachOrderedExample { public static void main(String[] args) { List gamesList = new ArrayList(); gamesList.add('Football'); gamesList.add('Cricket'); gamesList.add('Chess'); gamesList.add('Hocky'); System.out.println('------------Iterating by passing lambda expression---------------'); gamesList.stream().forEachOrdered(games -> System.out.println(games)); System.out.println('------------Iterating by passing method reference---------------'); gamesList.stream().forEachOrdered(System.out::println); } }
Producción:
------------Iterating by passing lambda expression--------------- Football Cricket Chess Hocky ------------Iterating by passing method reference--------------- Football Cricket Chess Hocky