List.of()
Создаёт неизменяемый список из перечисленных элементов.
Доступно с: Java 9
Синтаксис
static <E> List<E> of(E... elements)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| elements | E... | Элементы будущего списка. `null` не допускается. |
Возвращаемое значение
List<E>Неизменяемый список с переданными элементами в том же порядке.
Примеры
Список из трёх строк:
void main() {
List<String> names = List.of("Anna", "Oleg", "Ivan");
IO.println(names);
IO.println(names.size());
}Результат:
[Anna, Oleg, Ivan]
3Изменить такой список нельзя — нужна копия в ArrayList:
void main() {
List<Integer> fixed = List.of(3, 1, 2);
try {
fixed.add(4);
} catch (UnsupportedOperationException e) {
IO.println("Cannot add: " + e);
}
List<Integer> copy = new ArrayList<>(fixed);
copy.add(4);
IO.println(copy);
}Результат:
Cannot add: java.lang.UnsupportedOperationException
[3, 1, 2, 4]Примечания
Любая попытка изменить список — add(), remove(), set(), sort() — бросает UnsupportedOperationException. Элементы null запрещены: List.of(null) бросает NullPointerException. Для изменяемого списка оберните результат: new ArrayList<>(List.of(...)).
См. также
- ArrayList — Изменяемый список на основе массива — самая частая реализация `List`.
- List.copyOf() — Создаёт неизменяемую копию коллекции в виде списка.
- Set.of() — Создаёт неизменяемое множество из перечисленных элементов.
- Map.of() — Создаёт неизменяемый словарь из пар «ключ — значение».
- UnsupportedOperationException — Возникает при вызове операции, которую объект не поддерживает, — например, изменение неизменяемой коллекции.
Вопросы и ответы по теме
В учебнике
- Списки: List и ArrayList — Списки в Java: ArrayList, добавление, чтение и удаление элементов, неизменяемые списки List.of и списки чисел.