Collections Średniozaawansowany

Zbieraj bezpośrednio do niemodyfikowalnej listy za pomocą stream.toList().

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
Widzisz problem z tym kodem? Daj nam znać.
📏

Najkrótszy zapis

stream.toList() nie wymaga collect() ani importu Collectors.

🔒

Niemutowalny

Wyniku nie można modyfikować — żadnych przypadkowych mutacji.

📖

Czytelny

Czyta się naturalnie jako końcowy krok potoku strumieniowego.

Stare podejście
collectingAndThen
Nowoczesne podejście
stream.toList()
Od JDK
16
Poziom trudności
Średniozaawansowany
Niemodyfikowalne kolektory
Dostępne

Szeroko dostępne od JDK 16 (marzec 2021)

Java 10 dodała toUnmodifiableList(), toUnmodifiableSet() i toUnmodifiableMap() zastępując rozwlekłe opakowanie collectingAndThen. Dla list Java 16 oferuje stream.toList() — jeszcze prostszą alternatywę bez wywołania collect(). Dla innych typów kolekcji używaj toUnmodifiableSet() i toUnmodifiableMap().