String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
lub
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
Powyższa instrukcja dodaje opakowanie do tablicy wejściowej. Zatem metody takie jak add & remove nie będą miały zastosowania do obiektu referencyjnego listy „namesList”.
Jeśli spróbujesz dodać element do istniejącej tablicy / listy, otrzymasz „Wyjątek w wątku” główny „java.lang.UnsupportedOperationException”.
Powyższa operacja jest tylko do odczytu lub tylko do przeglądania.
Nie możemy wykonać operacji dodawania lub usuwania w obiekcie listy. Ale
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
lub
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
W powyższej instrukcji utworzyłeś konkretną instancję klasy ArrayList i przekazałeś listę jako parametr.
W tym przypadku metoda add & remove będzie działać poprawnie, ponieważ obie metody pochodzą z klasy ArrayList, więc tutaj nie otrzymamy żadnego UnSupportedOperationException.
Zmiany wprowadzone w obiekcie Arraylist (metoda dodająca lub usuwająca element z / z listy arraylist) nie zostaną odzwierciedlone w oryginalnym obiekcie 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)
tworzy niezależną kopię, tak jak pierwsza opcja. Jest po prostu bardziej ogólny i lepszy do obejrzenia.