
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。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)