Terminalne toList() zastępuje rozwlekłe collect(Collectors.toList()).
Porównanie kodu
✕ 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();
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
7 znaków vs 24
.toList() zastępuje .collect(Collectors.toList()).
Niemutowalny
Wynikowej listy nie można modyfikować.
Płynny
Czyta się naturalnie na końcu potoku.
Stare podejście
Collectors.toList()
Nowoczesne podejście
.toList()
Od JDK
16
Poziom trudności
Początkujący
Wsparcie JDK
Stream.toList()
Dostępne
Szeroko dostępne od JDK 16 (marzec 2021)
Jak to działa
Stream.toList() zwraca niemodyfikowalną listę. Jest równoważne .collect(Collectors.toUnmodifiableList()) ale znacznie krótsze. Uwaga — wynik jest niemutowalny, w przeciwieństwie do Collectors.toList().
Powiązana dokumentacja
Dowód