List.copyOf()
Создаёт неизменяемую копию коллекции в виде списка.
Доступно с: Java 10
Синтаксис
static <E> List<E> copyOf(Collection<? extends E> coll)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| coll | Collection<? extends E> | Коллекция, элементы которой копируются. |
Возвращаемое значение
List<E>Неизменяемый список с элементами коллекции.
Примеры
Копия не меняется вместе с оригиналом:
void main() {
List<String> cart = new ArrayList<>(List.of("tea", "milk"));
List<String> snapshot = List.copyOf(cart);
cart.add("bread");
IO.println(cart);
IO.println(snapshot);
}Результат:
[tea, milk, bread]
[tea, milk]Примечания
Удобно, когда метод возвращает внутренний список класса: вызывающий код получит копию и не сможет её изменить. Если переданная коллекция уже неизменяемая (создана через List.of()), копирование может не выполняться. Элементы null запрещены.
См. также
- List.of() — Создаёт неизменяемый список из перечисленных элементов.
- Collections.unmodifiableList() — Возвращает представление списка, которое нельзя изменить.
- ArrayList — Изменяемый список на основе массива — самая частая реализация `List`.
Вопросы и ответы по теме
В учебнике
- Списки: List и ArrayList — Списки в Java: ArrayList, добавление, чтение и удаление элементов, неизменяемые списки List.of и списки чисел.