【问题标题】:How to use stream to filter a collection in a range如何使用流过滤范围内的集合
【发布时间】:2015-12-23 19:11:46
【问题描述】:

我有一个域

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 过滤结果列表?

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您的姓名列表仅用于从结果中过滤掉人员,您应该考虑使用 Set,因为它的 contains 方法是 O(1)(恒定时间),因此它会带来更好的性能。

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2019-05-12
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多