Ответ
Метод Arrays.asList(T... a) возвращает список фиксированного размера, поддерживаемый указанным массивом. Это мост между массивами и API коллекций.
Основные характеристики:
- Фиксированный размер: Возвращаемый
Listявляется обёрткой над массивом. Операции, изменяющие размер (add(),remove()), выбрасываютUnsupportedOperationException. - Связь с массивом: Изменения в списке отражаются в исходном массиве и наоборот, так как список использует массив напрямую.
- Для примитивов: Передача примитивного массива (напр.,
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.