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

时间:2013-06-19 06:59:36

标签: java list

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

通过此代码:

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

2 个答案:

答案 0 :(得分:10)

Arrays#asList

  

返回由指定数组

支持的固定大小列表

因此,您无法在其中添加/删除元素。

要解决此问题,您可以执行以下操作:

List modifiableList = new ArrayList(Arrays.asList(array));

答案 1 :(得分: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();
    }
}