【问题标题】:Analog to negating .filter()类似于否定 .filter()
【发布时间】:2021-10-29 09:50:00
【问题描述】:

所以我有一个流,我正在尝试过滤它。该流中的每个对象都具有 5 种不同状态之一。每个具有特定状态的项目都会列入该列表。然后我将使用foreach 来更改这些过滤对象的另一个属性。

问题是:我必须对从我的列表中过滤掉的对象做一些事情。所以我也需要一种方法来获取它们,但由于有 5 种不同的状态,我不想将它们全部放在另一个过滤器中。

有没有办法将if/else 放在过滤器或foreach 内?有没有办法否定过滤?

无法发布代码,因为它是专有的。

【问题讨论】:

  • 听起来你在找Collectors.groupingBy(YourObject::getStatus)
  • 如果您想要五个不同的类别,请使用groupingBy。如果您想要两个类别,请使用partitioningBy。

标签: java filter stream negate


【解决方案1】:

根据您对问题的描述,我假设您正在从 Stream API 中寻找对 .filter() 方法的否定。假设方法调用如下所示:

stream.filter(booleanExpression)

要从上面的 invacation 中过滤出元素流,请使用以下命令:

stream.filter(!booleanExpression)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2015-05-15
    • 1970-01-01
    • 2023-03-12
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多