Зачем нужен метод Arrays.asList() ? В чем его суть?
Ответ Как и следует из документации: формирует список на основе массива. Массив при этом используется для внутреннего представления списка. Таким образом сохраняется связь между списком и исходным массивом: изменения в массиве отразятся на списке: String[] a = { "foo", "bar", "baz"} List list = Arrays.asList(a) System.out.println(list) // [foo, bar, baz] a[0] = "aaa" System.out.println(list) // [aaa, bar, baz] изменения в списке отразятся на массиве: String[] a = { "foo", "bar", "baz"} List list = Arrays.asList(a) System.out.println(list) // [foo, bar, baz] list.set(0, "bbb") System.out.println(Arrays.toString(a)) // [bbb, bar, baz]
Если массив содержит объекты, очевидно, и массив и список будут ссылаться на одни и те же экземпляры: Object[] a = { new Object(), new Object(), new Object()} List list = Arrays.asList(a) System.out.println(a[0] == list.get(0)) // true
Как уже упомянул @Oleg Chiruhin, тот факт, что метод принимает в качестве параметра массив в форме аргументов переменной длины, позволяет использовать его для относительно удобной инициализации списков: List list = Arrays.asList(new Foo(...), new Foo(...), new Foo(...)) сравните с List list1 = new ArrayList<>() list.add(new Foo(...)) list.add(new Foo(...)) list.add(new Foo(...))