Collections Fortgeschritten

Direkt in eine nicht-modifizierbare Liste mit stream.toList() sammeln.

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
Problem mit diesem Code entdeckt? Sag uns Bescheid.
📏

Kürzest möglich

stream.toList() benötigt weder collect() noch einen Collectors-Import.

🔒

Unveränderlich

Das Ergebnis kann nicht geändert werden — keine versehentlichen Mutationen.

📖

Lesbar

Liest sich natürlich als abschließender Schritt jeder Stream-Pipeline.

Alter Ansatz
collectingAndThen
Moderner Ansatz
stream.toList()
Seit JDK
16
Schwierigkeitsgrad
Fortgeschritten
Nicht-modifizierbare Collectors
Verfügbar

Weitgehend verfügbar seit JDK 16 (März 2021)

Java 10 fügte toUnmodifiableList(), toUnmodifiableSet() und toUnmodifiableMap() hinzu, um den ausführlichen collectingAndThen-Wrapper zu ersetzen. Für Listen bietet stream.toList() aus Java 16 eine noch einfachere Alternative — ganz ohne collect()-Aufruf. Für andere Kollektionstypen toUnmodifiableSet() und toUnmodifiableMap() verwenden.

Teilen 𝕏 🦋 in