Что делает метод Arrays.asList() в Java?

«Что делает метод Arrays.asList() в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод Arrays.asList(T... a) возвращает список фиксированного размера, поддерживаемый указанным массивом. Это мост между массивами и API коллекций.

Основные характеристики:

  1. Фиксированный размер: Возвращаемый List является обёрткой над массивом. Операции, изменяющие размер (add(), remove()), выбрасывают UnsupportedOperationException.
  2. Связь с массивом: Изменения в списке отражаются в исходном массиве и наоборот, так как список использует массив напрямую.
  3. Для примитивов: Передача примитивного массива (напр., int[]) трактуется как один элемент типа int[]. Используйте классы-обёртки (Integer[]).

Пример:

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

System.out.println(list); // [Java, Python, C++]

// Изменение в списке -> изменение в массиве
list.set(1, "Go");
System.out.println(Arrays.toString(array)); // [Java, Go, C++]

// Изменение в массиве -> изменение в списке
array[2] = "Rust";
System.out.println(list); // [Java, Go, Rust]

// list.add("New"); // UnsupportedOperationException
// list.remove(0);   // UnsupportedOperationException

Практическое применение: Удобен для быстрого создания небольшого, неизменяемого по размеру списка для передачи в методы, ожидающие Collection.