【发布时间】:2021-10-29 09:50:00
【问题描述】:
所以我有一个流,我正在尝试过滤它。该流中的每个对象都具有 5 种不同状态之一。每个具有特定状态的项目都会列入该列表。然后我将使用foreach 来更改这些过滤对象的另一个属性。
问题是:我必须对从我的列表中过滤掉的对象做一些事情。所以我也需要一种方法来获取它们,但由于有 5 种不同的状态,我不想将它们全部放在另一个过滤器中。
有没有办法将if/else 放在过滤器或foreach 内?有没有办法否定过滤?
无法发布代码,因为它是专有的。
【问题讨论】:
-
听起来你在找
Collectors.groupingBy(YourObject::getStatus) -
如果您想要五个不同的类别,请使用
groupingBy。如果您想要两个类别,请使用partitioningBy。