AI Features

Streams

Learn about streams in Java 8.

Stream interface

The Stream interface is located in the java.util.stream package. It represents a sequence of objects somewhat like the Iterator interface. However, unlike the Iterator, it supports parallel execution.

The Stream interface supports the map/filter/reduce pattern and executes lazily, forming the basis (along with lambdas) for functional-style programming in Java 8.

There are also corresponding primitive streams, IntStream, DoubleStream, and LongStream, for performance reasons.

Generating streams

The most obvious way to create a stream is from a Collection. The Collection interface has two default methods for creating streams:

  • stream(): Returns a sequential Stream with the collection as its source.
  • parallelStream()
...