小编典典

如何过滤 Java 集合(基于谓词)?

all

我想java.util.Collection根据谓词过滤 a 。


阅读 120

收藏
2022-03-03

共1个答案

小编典典

Java 8 (
2014 ) 在一行代码中使用流和 lambdas 解决了这个问题:

List<Person> beerDrinkers = persons.stream()
    .filter(p -> p.getAge() > 16).collect(Collectors.toList());

这是一个教程

用于Collection#removeIf就地修改集合。(注意:在这种情况下,谓词将删除满足谓词的对象):

persons.removeIf(p -> p.getAge() <= 16);

lambdaj允许在不编写循环或内部类的情况下过滤集合:

List<Person> beerDrinkers = select(persons, having(on(Person.class).getAge(),
    greaterThan(16)));

你能想象一些更具可读性的东西吗?

免责声明: 我是 lambdaj 的贡献者

2022-03-03