Start here. This is the direct spoken answer to practice first.
Overview
A stream is a consumable computation pipeline over a source, not a container that owns the elements.
A stream connects a source to intermediate operations such as filter and map, then to a terminal operation such as toList, count, or findFirst. Intermediate operations are lazy, so they describe the pipeline but do not normally process elements until a terminal operation requests a result. Elements can flow through the whole chain one at a time rather than through a separate collection at every step. A stream is single-use; after it has been operated on or consumed, create a fresh stream from the source.