Kollektionen unveränderlich kopieren
Eine unveränderliche Kopie einer beliebigen Kollektion mit einem einzigen Aufruf erstellen.
Code-Vergleich
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Intelligente Kopie
Die Kopie wird übersprungen, wenn die Quelle bereits unveränderlich ist.
Ein einziger Aufruf
Kein manuelles ArrayList-Erstellen und Verpacken.
Defensive Kopie
Änderungen am Original wirken sich nicht auf die Kopie aus.
Alter Ansatz
Manuelle Kopie + Wrapper
Moderner Ansatz
List.copyOf()
Seit JDK
10
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Kollektionen unveränderlich kopieren
Verfügbar
Weitgehend verfügbar seit JDK 10 (März 2018)
Wie es funktioniert
List.copyOf(), Set.copyOf() und Map.copyOf() erstellen unveränderliche Momentaufnahmen bestehender Kollektionen. Wenn die Quelle bereits eine unveränderliche Kollektion ist, wird keine Kopie erstellt.
Zugehörige Dokumentation