Niemutowalne kopiowanie kolekcji
Utwórz niemutowalną kopię dowolnej kolekcji w jednym wywołaniu.
Porównanie kodu
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Inteligentna kopia
Pomija kopiowanie, jeśli źródło jest już niemutowalne.
Jedno wywołanie
Bez ręcznej konstrukcji ArrayList i opakowywania.
Dowolna kolekcja
Przyjmuje dowolną kolekcję jako wejście—bez pośredniej konwersji do ArrayList.
Stare podejście
Ręczna kopia + opakowanie
Nowoczesne podejście
List.copyOf()
Od JDK
10
Poziom trudności
Początkujący
Wsparcie JDK
Niemutowalne kopiowanie kolekcji
Dostępne
Szeroko dostępne od JDK 10 (marzec 2018)
Jak to działa
List.copyOf(), Set.copyOf() oraz Map.copyOf() tworzą niemutowalne migawki istniejących kolekcji. Jeśli źródło jest już niemutowalną kolekcją, kopia nie jest tworzona.
Powiązana dokumentacja
Dowód