运行以下代码时,在 .remove() 方法中抛出 UnsupportedOperationException [重复]
Posted
技术标签:
【中文标题】运行以下代码时,在 .remove() 方法中抛出 UnsupportedOperationException [重复]【英文标题】:While running following code, UnsupportedOperationException is thrown at .remove() method [duplicate] 【发布时间】:2013-06-15 14:33:36 【问题描述】:在运行以下代码时,UnsupportedOperationException
被抛出.remove()
方法。
通过此代码:
List list = Array.asList(array) ;
list.remove(0);
【问题讨论】:
确实如此。你有什么问题? 每当您对 Java 有疑问时,您应该做的第一件事就是阅读文档。在这种情况下,您可以使用 Google 搜索 "java 7 Arrays" 并查找 asList() 方法。大多数问题的答案都在第一句话中。 【参考方案1】:Arrays#asList:
返回一个由指定数组支持的固定大小列表
因此,您不能在其中添加/删除元素。
要克服这个问题,你可以这样做:
List modifiableList = new ArrayList(Arrays.asList(array));
【讨论】:
【参考方案2】:如果您想从对象列表中删除某些对象,那么直接执行此操作的方法非常相似。您需要使用Iterator。
List<Integer> l = new ArrayLIst<>(); // or List<Integer> l = new ArrayLIst<Integer>();
Iterator<Integer> iter = l.iterator();
while (iter.hasNext())
if (iter.next().intValue() == 5)
iter.remove();
【讨论】:
以上是关于运行以下代码时,在 .remove() 方法中抛出 UnsupportedOperationException [重复]的主要内容,如果未能解决你的问题,请参考以下文章