UnsupportedOperationException移除时

时间:2019-03-07 23:59:01

标签: java

我正在尝试从ArrayList中删除重复项。但是我一直收到这个UnsupportedOperationException

public static void removeDuplicates(List<Integer> list) {
    Collections.sort(list);

    for(int i = 0; i<list.size();i++) {
        if(list.get(i)== list.get((i+1))) {
            list.remove(i+1);
        }

    }

} 

一件事,我无法创建新列表并进行更改,因为我不应该返回任何内容。我必须更改清单。

1 个答案:

答案 0 :(得分:-1)

在使用for循环对其进行迭代时,无法删除元素。解决此问题的一种简单方法是创建一个包含原始列表元素的新ArrayList,然后循环遍历原始列表,从列表副本中删除重复项,然后将其返回。

即使您可以使用for循环删除元素,也可能是UnmodifiableCollection类型的列表吗?如果是这样,您将无法从中删除元素,这就是该类的重点。同样,解决方案是创建一个全新的ArrayList,该ArrayList复制原始元素,并根据需要删除和更改该元素,然后将其返回给调用代码。