A collection stores data; a stream describes a pipeline of operations (filter/map/reduce) to produce a result. Streams are typically single-use, and a common pitfall is side effects (mutating external state) inside `map/forEach`, which makes code harder to reason about.
List<String> activeNames = users.stream()
.filter(User::isActive)
.map(User::getName)
.toList();