RemoveIf生成异常,为什么?

fbw*_*fbw 1 java lambda predicate

我尝试使用lambda表达式从列表中删除项目,但removeIf生成异常,为什么?

在这个Orlacle视频jdk8 8 MOOC介绍removeif与列表而不是arraylist.这样对吗 ?https://youtu.be/olKF7VpJMfg?list=PLMod1hYiIvSZL1xclvHcsV2dMiminf19x&t=137

public static void main(String[] args){
        List<String> parole = Arrays.asList("Lambda ", "expressions ", "are ", "cool ");
Predicate <String> findAre= s->"are ".equals(s);         
        parole.removeIf(findAre);
        parole.forEach( System.out::println);
            }
Run Code Online (Sandbox Code Playgroud)

这里用线程"main"中的代码和异常来描述

Era*_*ran 7

Arrays.asList 生成一个由数组支持的固定大小的列表,因此您无法在其中添加或删除元素.

您可以创建一个ArrayList以支持删除:

List<String> parole = new ArrayList<>(Arrays.asList("Lambda ", "expressions ", "are ", "cool "));
Run Code Online (Sandbox Code Playgroud)