Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как создать список

Короткий ответ

Изменяемый список — 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() — Возвращает список фиксированного размера, который работает поверх массива.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.