【问题标题】:While running following code, UnsupportedOperationException is thrown at .remove() method [duplicate]运行以下代码时,在 .remove() 方法中抛出 UnsupportedOperationException [重复]
【发布时间】:2013-06-15 14:33:36
【问题描述】:

在运行以下代码时,UnsupportedOperationException 被抛出.remove() 方法。

通过此代码:

List list = Array.asList(array) ;
list.remove(0);

【问题讨论】:

  • 确实如此。你有什么问题?
  • 每当您对 Java 有疑问时,您应该做的第一件事就是阅读文档。在这种情况下,您可以使用 Google 搜索 "java 7 Arrays" 并查找 asList() 方法。大多数问题的答案都在第一句话中。

标签: java list


【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 2015-03-01
      相关资源
      最近更新 更多