调用List.remove(index)时出现java.lang.UnsupportedOperationException

Tom*_*Tom 3 java arrays exception list arraylist

可能重复:
尝试从列表中删除时为什么会出现UnsupportedOperationException?

当我调用List.remove(index)或list.remove(element)时,它会引发java.lang.UnsupportedOperationException.唯一相关的错误代码是这样的:

17:08:10 [SEVERE]       at java.util.AbstractList.remove(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

这是一个例子:

String line = "cmd /say This is a test";
String[] segments = line.split(" ");
String cmd = segments[0];
List rest = Arrays.asList(segments);
rest.remove(0); // This line raises the exception
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?在我的执行代码中,我检查了索引0处的元素被删除.

Eng*_*uad 13

来自Arrays.asList()JavaDoc:

返回由指定数组支持的固定大小的列表.(对返回列表的更改"直写"到数组.)

而不是固定大小的列表:

List rest = Arrays.asList(segments);
Run Code Online (Sandbox Code Playgroud)

创建一个新的可变大小列表:

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