1. Introduction
The peek() method in Java Streams is an intermediate operation that allows you to perform a specified action on each element of the stream as they are consumed from the operations pipeline. Often used for debugging purposes, peek() can help developers see inside the stream without altering the flow of data. It's particularly useful for logging the current state of elements at a specific point in the stream.
Key Points
1. peek() is used to view each element without disrupting the pipeline of stream operations.
2. It enables action on each element as they pass through, often used for debugging or logging.
3. Being an intermediate operation, it does not execute until a terminal operation is invoked on the stream.
2. Program Steps
1. Import necessary classes.
2. Create a stream of elements.
3. Use peek() to perform an action on each element.
4. Apply a terminal operation to trigger the execution of peek().
5. Print the final results.
3. Code Program
import java.util.stream.Stream; public class StreamPeekExample { public static void main(String[] args) { // Step 2: Create a stream of elements Integer[] numbers = {1, 2, 3, 4, 5}; // Step 3 and 4: Use peek() to log each element and collect to list Integer[] processedNumbers = Stream.of(numbers) .peek(num -> System.out.println("Processing number: " + num)) .toArray(Integer[]::new); // Step 5: Output the processed numbers (not necessarily needed as peek has its output) System.out.println("Processed numbers:"); Stream.of(processedNumbers).forEach(System.out::println); } }
Output:
Processing number: 1 Processing number: 2 Processing number: 3 Processing number: 4 Processing number: 5 Processed numbers: 1 2 3 4 5
Explanation:
1. Stream Creation: The program starts by creating an array of integers and converting it into a Stream using Stream.of().
2. Using peek(): The peek() method is invoked with a lambda expression that prints a message for each element. This is useful for tracking what elements are being processed as the stream operations are applied.
3. Terminal Operation: The toArray() method acts as a terminal operation that triggers the execution of the stream pipeline, including the peek() operation. Without this terminal operation, peek() would not execute because intermediate operations in streams are lazy.
4. Result Output: The elements processed through peek() are then printed again, this time after the peek() operation, demonstrating that the elements remain unchanged. This confirms that peek() is purely for viewing or debugging purposes and does not modify the stream.
5. Utility and Use Case: This example illustrates how peek() can be effectively used for debugging or monitoring the state of each element during stream processing. It's particularly useful in complex streams where understanding the transformations or operations at each step is crucial.
Related Java 8 Source Code Examples:
Java Simple Lambda Expression Example Java Lambda Expressions Multiple Statements Java Lambda Expressions forEach Example Java Lambda Expression with Multiple Parameters Example Java Lambda Expression Runnable Example Java Lambda Expression Comparator Example Refactoring Factory Design Pattern with Lambdas Refactoring Chain of Responsibility Pattern with Lambdas Refactoring Observer Design Pattern with Lambdas Refactoring Strategy Design Pattern with Lambdas Iterate HashMap with forEach() + Lambda Expression Example Iterate HashSet with forEach() + Lambda Expression Example Iterate ArrayList with forEach() + Lambda Expression Example Java method reference to a constructor example Java method reference to static method example Java method reference to an instance method of an object example Java method reference to an instance method of an arbitrary object of a particular type Java 8 - Create Stream Object from Arrays Example Java 8 Creating a Stream from an Array Java 8 - Create Stream Object from Collection, List, Set Java 8 Stream - Sort List of String objects in Descending Order Example Java 8 Stream - Sort List of String objects in Ascending Order Example How to convert a Java 8 Stream to an Array? Java 8 Stream - allMatch(),anyMatch() and noneMatch() Example Java 8 Stream - Sort List of Objects by Multiple Fields Java 8 Stream - Sort List of Custom Objects in Ascending and Descending Order Java 8 - Stream filter(), forEach(), collect() and Collectors.toList() Example Java Stream filter null values example Java Stream filter map by values example Java Stream filter map by keys example Java 8 Collectors.counting() Example Java 8 Collectors.averagingDouble() Example Java 8 Collectors.toSet() Example Java 8 Collectors.toList() Example Java 8 Collectors.joining() example Java 8 Stream multiple filter operations Java 8 Stream filter map by keys Java 8 Stream filter map by values Java 8 Stream collect to list example Java 8 Stream Collectors.counting() exmaple Java 8 Collectors.collectingAndThen() example Java 8 Collectors.toList() Example Java 8 Collectors.minBy() and Collectors.maxBy() example Java Stream filter() Example Java Stream map() Example Java Stream flatMap() Example Java Stream distinct() Example Java Stream limit() Example Java Stream peek() Example Java Stream anyMatch() Example Java Stream allMatch() Example Java Stream noneMatch() Example Java Stream collect() Example Java Stream count() Example Java Stream findAny() Example Java Stream findFirst() Example Java Stream forEach() Example Java Stream min() Example Java Stream max() Example Java Stream reduce() Example Java Stream toArray() Example Java Function Functional Interface Example Java Supplier Functional Interface Example Java Consumer Example Java BiConsumer Example Java BiFunction Example Java Predicate Example Java 8 LongConsumer Example Java 8 IntConsumer Example Java 8 DoubleConsumer Example Java StringJoiner Example Create Optional Class Object in Java - empty(), of(), ofNullable() Methods Optional get() Method - Get Value from Optional Object in Java Optional isPresent() Method Example Optional orElse() Method Example Optional orElseGet() Method Example Optional orElseThrow() Method Example Optional filter() and map() Method Examples Java 8 program that counts the number of vowels and consonants in a given string Java 8 program that reverses words of a given string Java 8 - Copy List into Another List Example Check Whether the Given Year is Leap Year or Not in Java Java 8 forEach() Array Example Java 8 forEach() Map Example Java 8 forEach() Set Example Java 8 forEach() List Example Getting current date and time with Clock Convert LocalDate to Date in Java Convert LocalDateTime into Date in Java Connvert java.util.Date to java.time.LocalDateTime Example Convert java.util.Date to java.time.LocalDate Example Duration Between Two LocalDate in Java Java Convert ZonedDateTime to String Example Convert String to ZonedDateTime in Java Compare ZonedDateTime Objects in Java How to Get Hour, Minute, Second from ZonedDateTime in Java Convert ZonedDateTime to LocalTime Example Convert ZonedDateTime to LocalDateTime in Java Java ZonedDateTime now() and of() Method Example Convert LocalDateTime to LocalTime in Java Convert LocalDateTime to LocalDate in Java Compare LocalDateTime Objects in Java Java LocalDateTime - Get Hour, Minute and Second How to Get Day Month and Year from LocalDateTime in Java Java LocalDateTime now() Method Example How to Get Current Date Time in Java Convert LocalDate to String in Java Convert String to LocalDate in Java Java LocalDate isLeapYear() Method Example How to Get Number of Days from Month and Year using LocalDate in Java Compare Java LocalDate Objects Example How to Add Days Weeks Months and Years to LocalDate in Java How to get Day Month and Year from LocalDate in Java Java LocalDate now() Method Example - Get Current Date and Specific Date Convert LocalTime to String in Java Convert String to LocalTime in Java Java LocalTime isBefore() and isAfter() Method Example How to Compare Time in Java Java 8 - LocalTime getHour(), getMinute(), getSecond() and getNano() Example Java LocalTime now() Method Example - Get Current Time and Specific Time Java 8 Get Local Date Time in All Available Time Zones How to get year, month, day, hours, minutes, seconds and milliseconds of LocalDateTime in Java 8? How to get year, month, day, hours, minutes, seconds and milliseconds of Date in Java? Difference between Two Dates in Java Create LocalDateTime from LocalDate and LocalTime in Java Java 8 Stream
Comments
Post a Comment