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

Java 8-流,映射和计数不同

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

Java 8-流,映射和计数不同

您可以执行

groupingBy
两次:

Map<Integer, Map<Integer, Long>> map = bids.stream().collect(        groupingBy(Bid::getBidderUserId,     groupingBy(Bid::getAuctionId, counting())));

这样,您就可以确定每个用户在每次拍卖中有多少个出价。因此,内部地图的大小就是用户参与的拍卖次数。如果您不需要其他信息,可以执行以下操作:

Map<Integer, Integer> map = bids.stream().collect(        groupingBy(     Bid::getBidderUserId,     collectingAndThen(  groupingBy(Bid::getAuctionId, counting()),  Map::size)));

这正是您所需要的:将用户映射到参与的拍卖数量。

更新: 还有一个更接近您的示例的类似解决方案:

Map<Integer, Integer> map = bids.stream().collect(        groupingBy(     Bid::getBidderUserId,     collectingAndThen(  mapping(Bid::getAuctionId, toSet()),  Set::size)));


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

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

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