logo

Java pro každou smyčku

Java poskytuje novou metodu forEach() pro iteraci prvků. Je definován v rozhraní Iterable a Stream. Je to výchozí metoda definovaná v rozhraní Iterable. Třídy kolekce, které rozšiřují rozhraní Iterable, mohou používat smyčku forEach k iteraci prvků.

Tato metoda přebírá jeden parametr, kterým je funkční rozhraní. Jako argument tedy můžete předat výraz lambda.


forEach() Signature v iterovatelném rozhraní

 default void forEach(Consumeraction) 

Java 8 forEach() příklad 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)); } } 

Výstup:

 ------------Iterating by passing lambda expression-------------- Football Cricket Chess Hocky 

Příklad 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); } } 

Výstup:

 ------------Iterating by passing method reference--------------- Football Cricket Chess Hocky 

Java Stream pro metoduEachOrdered().

Spolu s metodou forEach() poskytuje Java ještě jednu metodu forEachOrdered(). Používá se k iteraci prvků v pořadí určeném proudem.

Přirozenost:

 void forEachOrdered(Consumer action) 

Příklad metody 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); } } 

Výstup:

 ------------Iterating by passing lambda expression--------------- Football Cricket Chess Hocky ------------Iterating by passing method reference--------------- Football Cricket Chess Hocky