String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
или
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
Вышеуказанный оператор добавляет оболочку к входному массиву. Таким образом, такие методы, как add и remove, не будут применяться к объекту ссылки на список «namesList».
Если вы попытаетесь добавить элемент в существующий массив / список, вы получите «Исключение в потоке» main «java.lang.UnsupportedOperationException».
Вышеупомянутая операция доступна только для чтения или просмотра.
Мы не можем выполнить операцию добавления или удаления в объекте списка. Но
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
или
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
В приведенном выше заявлении вы создали конкретный экземпляр класса ArrayList и передали список в качестве параметра.
В этом случае метод add & remove будет работать правильно, поскольку оба метода относятся к классу ArrayList, поэтому здесь мы не получим исключения UnSupportedOperationException.
Изменения, внесенные в объект Arraylist (метод добавления или удаления элемента в / из Arraylist), не будут отражены в исходном объекте java.util.List.
String names[] = new String[] {
"Avinash",
"Amol",
"John",
"Peter"
};
java.util.List < String > listObject = Arrays.asList(names);
java.util.ArrayList < String > list1 = new ArrayList < > (listObject);
for (String string: list1) {
System.out.print(" " + string);
}
list1.add("Alex"); //Added without any exception
list1.remove("Avinash"); //Added without any exception will not make any changes in original list in this case temp object.
for (String string: list1) {
System.out.print(" " + string);
}
String existingNames[] = new String[] {
"Avinash",
"Amol",
"John",
"Peter"
};
java.util.List < String > namesList = Arrays.asList(names);
namesList.add("Bob"); // UnsupportedOperationException occur
namesList.remove("Avinash"); //UnsupportedOperationException
Lists.newArrayList(ia)
делает независимую копию, как и в первом варианте. Это просто более общий характер, и на него лучше смотреть.