我有一个域名

public class Person{
  String name;
}


我有一个人名的字符串列表,例如

listRange = new ListWith("Bob","John","Mark");


以及如何使用Java 8流在resultList中进行过滤,结果列表中该人的名字。
可能像

resultList.stream().filter(p->p.getName().equals(listRange.any).collect();


如何使用Lambda过滤resultList?

最佳答案

您在寻找的只是contains方法:

resultList.stream().filter(p -> listRange.contains(p.getName()))
                   .collect(Collectors.toList());


如果您的姓名列表仅用于过滤结果中的人员,则应考虑使用Set,因为它的contains方法为O(1)(恒定时间),因此可以提高性能。

09-11 18:52