Как создать список
Короткий ответ
Изменяемый список — ArrayList. В него можно добавлять и удалять элементы:
void main() {
List<String> names = new ArrayList<>();
names.add("Anna");
names.add("Oleg");
IO.println(names);
IO.println(names.size());
}Результат:
[Anna, Oleg]
2Сразу с элементами
List.of() создаёт неизменяемый список — удобно для констант и данных только для чтения:
void main() {
List<String> days = List.of("Mon", "Tue", "Wed");
IO.println(days.get(1));
}Результат:
TueИзменяемый с начальными элементами
Передайте List.of() в конструктор ArrayList — получится изменяемая копия:
void main() {
List<Integer> numbers = new ArrayList<>(List.of(3, 1, 2));
numbers.add(4);
numbers.remove(Integer.valueOf(1));
IO.println(numbers);
}Результат:
[3, 2, 4]Тип через var
С var тип указывают только справа:
void main() {
var prices = new ArrayList<Double>();
prices.add(9.99);
IO.println(prices);
}Результат:
[9.99]Частая ошибка
Изменить список из List.of(). Он неизменяемый, и любая попытка выбрасывает исключение:
void main() {
List<String> days = List.of("Mon", "Tue");
days.add("Wed");
}Результат:
Exception in thread "main" java.lang.UnsupportedOperationExceptionЕщё одна особенность: List.of() не принимает null среди элементов.
Функции из этого ответа
- List.of() — Создаёт неизменяемый список из перечисленных элементов.
- List.add() — Добавляет элемент в конец списка или в указанную позицию.
- Collections.unmodifiableList() — Возвращает представление списка, которое нельзя изменить.
- Arrays.asList() — Возвращает список фиксированного размера, который работает поверх массива.