This intermediate operation returns a LongStream consisting of the elements of this stream, additionally performing the provided action on each element as elements are consumed from the resulting stream.
package com.logicbig.example.longstream;
import java.util.stream.LongStream;
public class PeekExample {
public static void main(String... args) {
LongStream longStream = LongStream.range(1, 6);
longStream.peek((x) -> System.out.println("peek " + x))
.filter(lg -> lg % 2 == 0)
.forEach(System.out::println);
}
}
Output
peek 1
peek 2
2
peek 3
peek 4
4
peek 5
Parallel stream:
package com.logicbig.example.longstream;
import java.util.stream.LongStream;
public class PeekExample3 {
public static void main(String... args) {
LongStream longStream = LongStream.range(1, 6);
longStream.parallel()
.peek((x) -> System.out.println("peek " + x))
.filter(lg -> lg % 2 == 0)
.forEach(System.out::println);
}
}
Output
peek 3
peek 1
peek 2
peek 4
peek 5
2
4