Main differences between Intermediate and Terminal Stream operations are as follows:
- Evaluation: Intermediate operations are not evaluated until we chain it with a Terminal Operation of Stream. Terminal Operations can be independently evaluated.
- Output: The output of Intermediate Operations is another Stream. The output of Terminal Operations is not a Stream.
- Lazy: Intermediate Operations are evaluated in lazy manner. Terminal Operations are evaluated in eager manner.
- Chaining: We can chain multiple Intermediate Operations in a Stream. Terminal Operations cannot be chained multiple times.
- Multiple: There can be multiple Intermediate operations in a Stream operation. There can be only one Terminal operation in Stream processing statement.