Open In App

Stream peek() Method in Java with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

In Java, Stream provides an powerful alternative to process data where here we will be discussing one of the very frequently used methods named peek() which being a consumer action basically returns a stream consisting of the elements of this stream, additionally performing the provided action on each element as elements are consumed from the resulting stream. This is an intermediate operation, as it creates a new stream that, when traversed, contains the elements of the initial stream that match the given predicate. 

Syntax: 

Stream<T> peek(Consumer<? super T> action)

Here, Stream is an interface and T is the type of stream element. action is a non-interfering action to perform on the elements as they are consumed from the stream and the function returns the new stream.Now we need to understand the lifecycle of peek() method via its internal working via clean java programs listed below as follows:

Note:

  • This method exists mainly to support debugging, where you want to see the elements as they flow past a certain point in a pipeline.
  • Since Java 9, if the number of elements is known in advance and unchanged in the stream, the .peek () statement will not be executed due to performance optimization. It is possible to force its operation by a command (formal) changing the number of elements eg. .filter (x -> true).
  • Using peek without any terminal operation does nothing.

Example 1:

Java




// Java Program to Illustrate peek() Method
// of Stream class Without Terminal Operation Count
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating a list of Integers
        List<Integer> list
            = Arrays.asList(0, 2, 4, 6, 8, 10);
 
        // Using peek without any terminal
        // operation does nothing
        list.stream().peek(System.out::println);
    }
}


 
 

Output: 

 

 

From the above output, we can perceive that this piece of code will produce no output

 

Example 2:

 

Java




// Java Program to Illustrate peek() Method
// of Stream class With Terminal Operation Count
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating a list of Integers
        List<Integer> list
            = Arrays.asList(0, 2, 4, 6, 8, 10);
 
        // Using peek with count() method,Method
        // which is a terminal operation
        list.stream().peek(System.out::println).count();
    }
}


 
 

Output:  

 

0
2
4
6
8
10

 



Last Updated : 11 Apr, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads