java - method - throw new unsupportedoperationexception
java.lang.UnsupportedOperationException en java.util.AbstractList.remove(Fuente desconocida) (3)
He intentado debajo del código
String s[]={"1","2","3","4"};
Collection c=Arrays.asList(s);
System.out.println(c.remove("1") +" remove flag");
System.out.println(" collcetion "+c);
Estuve obteniendo
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(Unknown Source)
at java.util.AbstractList$Itr.remove(Unknown Source)
at java.util.AbstractCollection.remove(Unknown Source)
at test.main(test.java:26)
¿Alguien puede ayudarme a resolver este problema?
Corrección leve: no, no es una Colección no modificable. Simplemente no es compatible con la adición y eliminación de elementos, ya que está respaldado por la matriz proporcionada y las matrices no se pueden redimensionar. Pero admite operaciones como list.set(index, element)
El trabajo fácil es simplemente pasar la Lista al constructor de ArrayList
.
Por ejemplo:
String valuesInArray[]={"1","2","3","4"}; List modifiableList = new ArrayList(Arrays.asList(valuesInArray)); System.out.println(modifiableList.remove("1") + " remove flag"); System.out.println(" collcetion "+ modifiableList);
Respuesta:
true eliminar bandera
collcetion [2, 3, 4]
Estaba teniendo este problema, porque también estaba inicializando mi lista con Arrays.asList
:
List<String> names = Arrays.asList("a", "b", "c");
Para resolver el problema, utilicé addAll
lugar:
List<String> names = new ArrayList<String>();
names.addAll(Arrays.asList("a", "b", "c"));
De esta manera puede editar la lista, agregar nuevos elementos o eliminar.