unsupportedoperationexception unsupported new method java arrays exception collections

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.