Junior — Middle
When exactly do the operations in a Stream method chain in Java occur?
sobes.tech AI
Answer from AI
In Java, operations in a Stream method chain are divided into intermediate and terminal operations. Intermediate operations are lazy transformations that are not executed immediately but only form a description of the data processing pipeline.
The execution of operations occurs only when a terminal operation is called, which initiates data processing and returns a result or side effect.
For example:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a")) // intermediate operation
.map(String::toUpperCase); // intermediate operation
List<String> result = stream.collect(Collectors.toList()); // terminal operation
Here, filtering and transformation are not performed until collect() is called. The terminal operation triggers the entire chain.