我想从列表中删除特定元素。迭代列表时我不想这样做。我想指定必须删除的值。在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
答案 0 :(得分:23)
问题是Arrays.asList()
会返回一个不支持插入/删除的列表(它只是一个视图到stra
)。< / p>
要修复,请更改:
List<String> a = Arrays.asList(stra);
为:
List<String> a = new ArrayList<String>(Arrays.asList(stra));
这会生成列表的副本,允许您修改它。
答案 1 :(得分:2)
http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29
看到这个。 Arrays.asList返回一个固定列表。哪个是不可变的。根据它的定义,一旦它创建,你就无法修改该对象。这就是它抛出不支持的异常的原因。