栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用groupingBy的类属性的平面映射收集器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用groupingBy的类属性的平面映射收集器

似乎没有平面映射收集器可

groupingBy
在Java8中用作下游,但已被Java9提出并接受:https
://bugs.openjdk.java.net/browse/JDK-8071600

public static <T, U, A, R>    Collector<T, ?, R> flatMapping(Function<? super T, ? extends Stream<? extends U>> mapper,  Collector<? super U, A, R> downstream) {        BiConsumer<A, ? super U> downstreamAccumulator = downstream.accumulator();        return Collector.of(downstream.supplier(),      (r, t) -> mapper.apply(t).sequential().forEach(u -> downstreamAccumulator.accept(r, u)),      downstream.combiner(),      downstream.finisher(),      downstream.characteristics().stream().toArray(Collector.Characteristics[]::new));    }

如果使用该代码,并且还添加了一个返回的

quantities
方法,则可以使用以下代码:
Assignment``Stream<Quantity>

Map<Integer, List<Quantity>> result = assignments.stream()    .collect(groupingBy(Assignment::getIndex,         flatMapping(Assignment::quantities, toList())));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号