removeIf()的List不工作​​throw - UnsupportedOperationException

Jok*_*ker 1 java arraylist java-8

当我尝试从列表中删除元素时removeIf(),它正在抛出UnsupportedOperationException

public class T {
        public static void main(String[] args) {
        String[] arr = new String[] { "1", "2", "3" };
        List<String> stringList = Arrays.asList(arr);
        stringList.removeIf((String string) -> string.equals("2"));
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解为什么会发生这种情况,我该如何纠正这个问题?

Era*_*ran 8

Arrays.asList(arr)返回固定大小List,因此您无法添加或删除元素(仅替换现有元素).

创建一个ArrayList代替:

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