IntStream peek() is a method in java.util.stream.IntStream. The function 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.
Syntax :
IntStream peek(IntConsumer action) Where, IntStream is a sequence of primitive int-valued elements and the function returns a parallel IntStream and IntConsumer represents an operation that accepts a single int-valued argument.
Example 1 : Performing sum on a stream of given range.
// Java code for IntStream peek() // where the action performed is to get // sum of all elements in given range import java.util.*; import java.util.stream.IntStream;   class GFG {           // Driver code     public static void main(String[] args) {           // Creating a stream of integers     IntStream stream = IntStream.range( 2 , 10 );           // performing action sum on elements of     // given range and storing the result in sum     int sum = stream.peek(System.out::println).sum();           // Displaying the result of action performed             System.out.println( "sum is : " + sum); } } |
Output :
2 3 4 5 6 7 8 9 sum is : 44
Example 2 : Performing count operation on a stream of given range.
// Java code for IntStream peek() // where the action performed is to get // count of all elements in given range import java.util.*; import java.util.stream.IntStream;   class GFG {           // Driver code     public static void main(String[] args) {           // Creating a stream of integers     IntStream stream = IntStream.range( 2 , 10 );           // performing action count on elements of     // given range and storing the result in Count     long Count = stream.peek(System.out::println).count();           // Displaying the result of action performed                         System.out.println( "count : " + Count); } } |
Output :
2 3 4 5 6 7 8 9 count : 8
Example 3 : Performing Average operation on a stream of given range.
// Java code for IntStream peek() // where the action performed is to get // average of all elements in given range import java.util.*; import java.util.OptionalDouble; import java.util.stream.IntStream;   class GFG {           // Driver code     public static void main(String[] args) {           // Creating a stream of integers     IntStream stream = IntStream.range( 2 , 10 );       // performing action average on elements of     // given range and storing the result in avg     OptionalDouble avg = stream.peek(System.out::println)                         .average();           // If a value is present, isPresent()     // will return true, else -1 is displayed.     if (avg.isPresent())     {     System.out.println( "Average is : " + avg.getAsDouble());     }     else     {     System.out.println( "-1" );     } } } |
Output :
2 3 4 5 6 7 8 9 Average is : 5.5