Intermediate stream operations build a pipeline; terminal operations trigger processing. Keep transformations free from incidental side effects.
Before you start
You should know Java classes, methods, collections and exceptions. Trace object identity separately from the contents of an object. For concurrent examples, state which thread owns or shares the data; a single successful execution is not proof that every interleaving is safe.
The practical goal is to reason through this situation: A filter followed by map does not process values until collection or another terminal operation occurs. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.
Step-by-step walkthrough
Step 1: Build the pipeline
Filter and map describe processing without necessarily executing it yet.
Step 2: Trigger traversal
A terminal operation starts the required work.
Step 3: Keep essential effects explicit
Do not make business correctness depend on incidental peek execution.
Worked scenario
A filter followed by map does not process values until collection or another terminal operation occurs.
Create a stream pipeline with a diagnostic print in map, then observe that nothing prints before a terminal operation. Collecting materializes the transformed result. Operations such as count may exploit known sizes, so diagnostic stages are not a reliable place to mandate an audit for every element.
Common mistake
Using peek for required business actions relies on execution details rather than a clear contract.
Verify the behavior
Check behavior before and after collection; perform required audit work explicitly.
Interview exercise
Perform an essential audit operation.
Answer and reasoning
Use explicit controlled processing at the operation boundary, not a diagnostic-style stream stage whose execution may vary.
Continue learning
Compare the scenario with the Java interview questions and test your understanding with the Java MCQs. For terminology and implementation details, consult the reference material.