java.util.AbstractList.remove 处的 java.lang.UnsupportedOperationException(未知来源)

新手上路,请多包涵

我试过下面的代码

String s[]={"1","2","3","4"};
Collection c=Arrays.asList(s);
System.out.println(c.remove("1") +"  remove flag");

System.out.println(" collcetion "+c);

我得到

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)

谁能帮我解决这个问题?

原文由 Deepankar Sarkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 414
2 个回答

简单的解决方法就是将 List 传递给 ArrayList 的构造函数。

例如:

字符串 valuesInArray[]={"1","2","3","4"};
列表 modifiableList = new ArrayList(Arrays.asList(valuesInArray));
System.out.println(modifiableList.remove("1") + "删除标志");
System.out.println("集合"+ modifiableList);

回复:

真删除标志

集合 [2, 3, 4]

原文由 Bojan Petkovic 发布,翻译遵循 CC BY-SA 4.0 许可协议

稍作更正:不,它不是不可修改的集合。它只是不支持添加和删除元素,因为它由提供的数组支持并且数组不可调整大小。但它支持像 list.set(index, element) 这样的操作

原文由 Sean Patrick Floyd 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题