什么是过滤Java集合的最佳方法?

问题:

我想基于谓词过滤java.util.Collection

回答:

Java 8(2014)在一行代码中使用stream和lambdas来解决此问题:

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

这是tutorial
使用Collection#removeIf修改集合(只要它支持删除元素):

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

 lambdaj允许过滤集合而不编写循环或内部类:

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

你能想象一些更可读的东西吗?
 免责声明:我是lambdaj的贡献者

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What is the best way to filter a Java Collection?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

79 + = 88