String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
o
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
La declaración anterior agrega el contenedor en la matriz de entrada. Por lo tanto, los métodos como agregar y eliminar no serán aplicables en el objeto de referencia de la lista 'namesList'.
Si intenta agregar un elemento en la matriz / lista existente, obtendrá "Excepción en el hilo" principal "java.lang.UnsupportedOperationException".
La operación anterior es de solo lectura o solo visualización.
No podemos realizar la operación de agregar o quitar en el objeto de lista. Pero
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
o
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
En la declaración anterior, ha creado una instancia concreta de una clase ArrayList y ha pasado una lista como parámetro.
En este caso, el método add & remove funcionará correctamente ya que ambos métodos son de la clase ArrayList, por lo que aquí no obtendremos ninguna UnSupportedOperationException.
Los cambios realizados en el objeto Arraylist (método para agregar o eliminar un elemento en / de una lista de arreglos) no se reflejarán en el objeto java.util.List original.
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)
realiza una copia independiente, al igual que la primera opción. Es simplemente más general y mejor de mirar.