运行以下代码时,在 .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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在类中抛出异常的最佳方法是什么?

MySqlDb 在插入忽略语句中抛出操作数应包含 1 列

测试 Mocha 中抛出的错误 [重复]

特定网站在 QWebView 中抛出异常

你能在 Java 中抛出啥?

在 Java 的方法中抛出特定的异常是多余的吗?