如何使用流过滤范围内的集合

时间:2015-09-25 21:25:51

标签: java collections lambda java-8 java-stream

我有一个域名

 super(Human,self).__init__(name,surname,age)

我有一个人名的字符串,比如

public class Person{
  String name;
}

如何使用Java 8流在resultList中过滤,哪个人在此范围列表中具有名称。 可能就像

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

如何使用Lambda过滤resultList?

1 个答案:

答案 0 :(得分:8)

您正在寻找的只是contains方法:

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

如果您的名单仅用于过滤掉结果中的人物,则应考虑使用Set,因为其contains方法为O(1)(常数时间),因此会产生结果在更好的表现。