Collections Начинающий

Создание неизменяемой копии любой коллекции одним вызовом.

✕ Java 8
List<String> copy =
    Collections.unmodifiableList(
        new ArrayList<>(original)
    );
✓ Java 10+
List<String> copy =
    List.copyOf(original);
Заметили проблему в этом коде? Сообщите нам.

Умное копирование

Копирование пропускается, если источник уже неизменяем.

📏

Один вызов

Без ручного создания ArrayList и обёртывания.

🛡️

Любая коллекция

Принимает любую Collection на входе — без промежуточного преобразования в ArrayList.

Старый подход
Ручное копирование + обёртка
Современный подход
List.copyOf()
Начиная с JDK
10
Сложность
Начинающий
Неизменяемое копирование коллекций
Доступно

Широко доступно начиная с JDK 10 (март 2018)

List.copyOf(), Set.copyOf() и Map.copyOf() создают неизменяемые снимки существующих коллекций. Если источник уже является неизменяемой коллекцией, копия не создаётся.