我有一个用户列表,我想从我的列表中删除id为

其实我这样做:

[…]

int pid1 = 1;

int pid2 = 2;

int pid3 = 3;

Predicate personPredicate1 = p-> p.getPid() == pid1;

Predicate personPredicate2 = p-> p.getPid() == pid2;

Predicate personPredicate3 = p-> p.getPid() == pid3;

list.removeIf(personPredicate1);

list.removeIf(personPredicate2);

list.removeIf(personPredicate3);

[…]

我想我不使用正确的方法

解决方法:

使用单个removeIf:

list.removeIf(p -> p.getPid() < 3);

编辑:

根据您发布的错误,您尝试从不可变集合中删除元素,这是不可能的.

您可以创建原始列表的副本并从副本中删除元素:

List copy = new ArrayList<>(list);

copy.removeIf(p -> p.getPid() < 3);

标签:java,predicate

来源: https://codeday.me/bug/20190722/1499909.html