Collectors non modifiables
Collecte directement dans une liste non modifiable avec stream.toList().
Comparaison de Code
✕ Java 8
List<String> list = stream.collect(
Collectors.collectingAndThen(
Collectors.toList(),
Collections::unmodifiableList
)
);
✓ Java 16+
List<String> list = stream.toList();
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Le plus court possible
stream.toList() ne nécessite pas collect() ni l'import de Collectors.
Immutable
Le résultat ne peut pas être modifié — sans mutations accidentelles.
Lisible
Se lit naturellement comme étape terminale de n'importe quel pipeline de stream.
Ancienne Approche
collectingAndThen
Approche Moderne
stream.toList()
Depuis JDK
16
Difficulté
Intermédiaire
Support JDK
Collectors non modifiables
Disponible
Disponible depuis JDK 16 (mars 2021)
Comment ça fonctionne
Java 10 a ajouté toUnmodifiableList(), toUnmodifiableSet() et toUnmodifiableMap() pour remplacer le wrapper verbose collectingAndThen. Pour les listes spécifiquement, stream.toList() de Java 16 offre une alternative encore plus simple — sans appel à collect() du tout. Utilisez toUnmodifiableSet() et toUnmodifiableMap() pour les autres types de collections.
Documentation Associée