如何在Java流中对groupBy应用过滤

如何在Java流中对groupBy应用过滤,第1张

如何在Java流中对groupBy应用过滤

nullpointer的答案显示了直接的方法。如果您不能更新到Java
9,没问题,那么这个

filtering
收集器就没有魔力。这是Java 8兼容的版本:

public static <T, A, R> Collector<T, ?, R> filtering(    Predicate<? super T> predicate, Collector<? super T, A, R> downstream) {    BiConsumer<A, ? super T> accumulator = downstream.accumulator();    return Collector.of(downstream.supplier(),        (r, t) -> { if(predicate.test(t)) accumulator.accept(r, t); },        downstream.combiner(), downstream.finisher(),        downstream.characteristics().toArray(new Collector.Characteristics[0]));}

您可以将其添加到您的代码库中,并以与Java 9对应的方式相同的方式使用它,因此,如果您使用,则无需以任何方式更改代码

import static



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5488101.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存