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);
上面的语句在输入数组上添加包装器。因此,诸如添加和删除之类的方法将不适用于列表引用对象“ namesList”。
如果尝试在现有数组/列表中添加元素,则将获得“线程“主”中的异常” 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)
就像第一个选择一样,制作一个独立的副本。它只是更笼统,更好看。