Stream forEach(Consumer action) performs an action for each element of the stream. Stream forEach(Consumer action) is a terminal operation i.e, it may traverse the stream to produce a result or a side-effect.
Syntax :
void forEach(Consumer<? super T> action) Where, Consumer is a functional interface and T is the type of stream elements.
Note : The behavior of this operation is explicitly nondeterministic. Also, for any given element, the action may be performed at whatever time and in whatever thread the library chooses.
Example 1 : To perform print operation on each element of reversely sorted stream.
// Java code for forEach // (Consumer action) in Java 8 import java.util.*;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating a list of Integers
List<Integer> list = Arrays.asList( 2 , 4 , 6 , 8 , 10 );
// Using forEach(Consumer action) to
// print the elements of stream
// in reverse order
list.stream().sorted(Comparator.reverseOrder()).forEach(System.out::println);
}
} |
10 8 6 4 2
Example 2 : To perform print operation on each element of string stream.
// Java code for forEach // (Consumer action) in Java 8 import java.util.*;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating a list of Strings
List<String> list = Arrays.asList( "GFG" , "Geeks" ,
"for" , "GeeksforGeeks" );
// Using forEach(Consumer action) to
// print the elements of stream
list.stream().forEach(System.out::println);
}
} |
GFG Geeks for GeeksforGeeks
Example 3 : To perform print operation on each element of reversely sorted string stream.
// Java code for forEach // (Consumer action) in Java 8 import java.util.*;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating a Stream of Strings
Stream<String> stream = Stream.of( "GFG" , "Geeks" ,
"for" , "GeeksforGeeks" );
// Using forEach(Consumer action) to print
// Character at index 1 in reverse order
stream.sorted(Comparator.reverseOrder())
.flatMap(str -> Stream.of(str.charAt( 1 )))
.forEach(System.out::println);
}
} |
o e e F