8

我想从我的列表中删除特定元素。我不想在遍历列表时这样做。我想指定必须删除的值。在 javadocs 中,我找到了函数List.remove(Object 0)这是我的代码:

         String str="1,2,3,4,5,6,7,8,9,10";
         String[] stra=str.split(",");
         List<String> a=Arrays.asList(stra);
         a.remove("2");
         a.remove("3");

但我得到一个例外:java.lang.UnsupportedOperationException

4

2 回答 2

25

问题是Arrays.asList()返回一个不支持插入/删除的列表(它只是一个视图stra)。

要修复,请更改:

List<String> a = Arrays.asList(stra);

到:

List<String> a = new ArrayList<String>(Arrays.asList(stra));

这会生成列表的副本,允许您对其进行修改。

于 2012-05-17T12:59:55.540 回答
2

http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29

看到这个。Arrays.asList 返回一个固定列表。这是一个不可变的。根据它的定义,一旦创建该对象,您就无法修改它。这就是它抛出不受支持的异常的原因。

于 2012-05-17T14:05:13.630 回答