String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
oder
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
Die obige Anweisung fügt den Wrapper zum Eingabearray hinzu. Daher sind Methoden wie Hinzufügen und Entfernen für das Listenreferenzobjekt 'namesList' nicht anwendbar.
Wenn Sie versuchen, ein Element in das vorhandene Array / die vorhandene Liste einzufügen, erhalten Sie "Ausnahme im Thread" main "java.lang.UnsupportedOperationException".
Die obige Operation ist schreibgeschützt oder nur sichtbar.
Wir können keine Operationen zum Hinzufügen oder Entfernen im Listenobjekt ausführen. Aber
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
oder
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
In der obigen Anweisung haben Sie eine konkrete Instanz einer ArrayList-Klasse erstellt und eine Liste als Parameter übergeben.
In diesem Fall funktioniert das Hinzufügen und Entfernen von Methoden ordnungsgemäß, da beide Methoden aus der ArrayList-Klasse stammen. Daher erhalten wir hier keine UnSupportedOperationException.
Änderungen, die im Arraylist-Objekt vorgenommen wurden (Methode zum Hinzufügen oder Entfernen eines Elements in / aus einer Arraylist), werden nicht in das ursprüngliche java.util.List-Objekt übernommen.
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)
erstellt eine unabhängige Kopie, genau wie die erste Option. Es ist einfach allgemeiner und besser anzusehen.