【问题标题】:How can I use OR in filters with Speedment如何在带有 Speedment 的过滤器中使用 OR
【发布时间】:2017-10-03 10:50:33
【问题描述】:

当我想过滤 Speedment 流时,如何使用 OR?如何与来自 NY、NJ 或 PA 的用户一起编写流?

users.stream()
    .filter(User.STATE.equals("NY"))
    .collect(Collectors.toList())

这会生成仅来自纽约的用户列表...

【问题讨论】:

    标签: java speedment


    【解决方案1】:

    在这种特殊情况下,至少有两种方法: a) 使用Predicate::or b) 使用in 谓词

    谓词::或

    users.stream()
        .filter(
            User.STATE.equals("NY")
            .or(User.STATE.equals("NJ"))
            .or(User.STATE.equals("PA"))
        )
        .collect(Collectors.toList());
    

    in() 谓词

    users.stream()
        .filter(User.STATE.in("NY", "NJ", "PA"))
        .collect(Collectors.toList());
    

    我会使用后一种解决方案,我认为它看起来更好。

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 2014-10-02
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多