Un Stream est une suite d'éléments traitée de façon déclarative par un pipeline : source, opérations intermédiaires paresseuses (filter, map, sorted) et une opération terminale (collect, count, forEach). Il ne modifie pas la source et ne peut être consommé qu'une seule fois.
Exemple
List<String> r = noms.stream()
.filter(n -> n.length() > 3)
.map(String::toUpperCase)
.toList();