Das terminale toList() ersetzt das ausführliche collect(Collectors.toList()).
Code-Vergleich
✕ Java 8
List<String> result = stream
.filter(s -> s.length() > 3)
.collect(Collectors.toList());
✓ Java 16+
List<String> result = stream
.filter(s -> s.length() > 3)
.toList();
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
7 Zeichen vs. 24
.toList() ersetzt .collect(Collectors.toList()).
Unveränderlich
Die Ergebnisliste kann nicht verändert werden.
Fließend
Liest sich am Ende einer Pipeline natürlich.
Alter Ansatz
Collectors.toList()
Moderner Ansatz
.toList()
Seit JDK
16
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Stream.toList()
Verfügbar
Weitgehend verfügbar seit JDK 16 (März 2021)
Wie es funktioniert
Stream.toList() gibt eine unveränderliche Liste zurück. Es entspricht .collect(Collectors.toUnmodifiableList()), ist aber viel kürzer. Hinweis: Das Ergebnis ist im Gegensatz zu Collectors.toList() unveränderlich.
Zugehörige Dokumentation