Java udostępnia nową metodę forEach() umożliwiającą iterację elementów. Jest zdefiniowany w interfejsie Iterable i Stream. Jest to metoda domyślna zdefiniowana w interfejsie Iterable. Klasy kolekcji rozszerzające interfejs Iterable mogą używać pętli forEach do iteracji elementów.
Metoda ta przyjmuje pojedynczy parametr będący interfejsem funkcjonalnym. Możesz więc przekazać wyrażenie lambda jako argument.
forEach() Podpis w interfejsie iterowalnym
default void forEach(Consumeraction)
Przykład Java 8 forEach() 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)); } }
Wyjście:
------------Iterating by passing lambda expression-------------- Football Cricket Chess Hocky
Przykład Java 8 forEach() 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); } }
Wyjście:
------------Iterating by passing method reference--------------- Football Cricket Chess Hocky
Metoda strumienia Java forEachOrdered().
Oprócz metody forEach() Java udostępnia jeszcze jedną metodę forEachOrdered(). Służy do iteracji elementów w kolejności określonej przez strumień.
Podpis:
void forEachOrdered(Consumer action)
Przykład metody strumienia Java 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); } }
Wyjście:
------------Iterating by passing lambda expression--------------- Football Cricket Chess Hocky ------------Iterating by passing method reference--------------- Football Cricket Chess Hocky