从java中的列表中删除值<String>会抛出java.lang.UnsupportedOperationException

Ash*_*win 8 java list

我想从列表中删除特定元素.迭代列表时我不想这样做.我想指定必须删除的值.在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");
Run Code Online (Sandbox Code Playgroud)

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

NPE*_*NPE 24

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

要修复,请更改:

List<String> a = Arrays.asList(stra);
Run Code Online (Sandbox Code Playgroud)

至:

List<String> a = new ArrayList<String>(Arrays.asList(stra));
Run Code Online (Sandbox Code Playgroud)

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