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);
Вгорі Statement додає обгортку на вхідний масив. Тож такі методи, як додавання та видалення, не будуть застосовані до списку посилальних об’єктів '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 і передали список як параметр.
У цьому випадку метод додавання та видалення буде працювати належним чином, оскільки обидва методи є з класу ArrayList, тому тут ми не отримаємо будь-якого UnSupportedOperationException.
Зміни, внесені в об’єкт 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)
робить незалежну копію, як і перший варіант. Це просто більш загальне і краще подивитися.