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

时间:2018-05-10 05:56:36

标签: 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"));
    }
}

有人可以帮助我理解为什么会这样,我该如何纠正这个?

1 个答案:

答案 0 :(得分:7)

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

改为创建ArrayList

List<String> stringList = new ArrayList<>(Arrays.asList(arr));