← Назад к вопросам

Что делает метод asList в классе Arrays?

1.8 Middle🔥 111 комментариев
#Stream API и функциональное программирование#Многопоточность

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Метод asList в классе Arrays

Назначение

Метод asList() класса Arrays предназначен для преобразования массива в список (List). Это один из самых часто используемых методов в Java при работе с коллекциями.

Как это работает

Метод возвращает фиксированный список (fixed-size list), основанный на массиве. Это означает, что изменения в списке будут отражаться в исходном массиве и наоборот, так как они разделяют одно и то же хранилище данных.

Сигнатура метода

public static <T> List<T> asList(T... a)

Метод принимает переменное количество аргументов (varargs) и возвращает List типа T.

Примеры использования

Пример 1: Базовое преобразование массива в список

String[] array = {"Java", "Python", "C++"};
List<String> list = Arrays.asList(array);
System.out.println(list); // [Java, Python, C++]

Пример 2: Инициализация списка с литералом

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
System.out.println(numbers.size()); // 5

Пример 3: Связь между массивом и списком

String[] array = {"A", "B", "C"};
List<String> list = Arrays.asList(array);
array[0] = "X";
System.out.println(list.get(0)); // X - изменение видно в списке

Важные ограничения

Фиксированный размер: Нельзя добавлять или удалять элементы из возвращаемого списка. Попытка выполнить add() или remove() приведёт к UnsupportedOperationException.

List<String> list = Arrays.asList("A", "B", "C");
list.add("D"); // ❌ UnsupportedOperationException

Решение: Если нужен изменяемый список, следует создать новый ArrayList:

List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
list.add("D"); // ✅ Работает

Когда использовать

  • Преобразование массивов в коллекции для передачи в методы, ожидающие List
  • Инициализация списков с известными значениями
  • Работа с методами, которые требуют List вместо массива
  • Когда размер коллекции не будет меняться

Производительность

Метод работает за O(1) по времени (просто обёртывает массив), но помните, что это не копирование — изменения видны в обоих направлениях, что может быть как преимуществом, так и источником ошибок.

Что делает метод asList в классе Arrays? | PrepBro