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