Kolekcja przechowuje dane; stream opisuje potok operacji (filter/map/reduce), który produkuje wynik. Streamy są zwykle jednorazowe, a częsty błąd to efekty uboczne (mutowanie zewnętrznego stanu) w `map/forEach`, co utrudnia myślenie o kodzie.
List<String> activeNames = users.stream()
.filter(User::isActive)
.map(User::getName)
.toList();