日常记录Stream流操作

1处理分组后取每组最大

Map<String, HitRuleConfig> configMap = configList.parallelStream().collect(
               Collectors.groupingBy(HitRuleConfig::getAppId, // 先根据appId分组
               Collectors.collectingAndThen(
               Collectors.reducing(( c1,  c2) -> c1.getVersionSort() > c2.getVersionSort() ? c1 : c2), Optional::get)));

2stream对实体类的数值型字段求和

 long total1 = list.stream().map(Bean::getNum1).reduce(Long::sum).get();
 double total2 = list.stream().map(Bean::getNum2).reduce(Double::sum).get();
BigDecimal result2 = userList.stream() 
// 将user对象的mongey取出来map为Bigdecimal
.map(User::getMoney)
 // 使用reduce聚合函数,实现累加器
  .reduce(BigDecimal.ZERO,BigDecimal::add);

3stream对实体属性进行分组

        Map<String, List<Map>> top3MaxSalesByStoreid = store_3product_list.stream().collect(Collectors.groupingBy(e -> e.get("storeId").toString()));

        Map<String, List<ConsultCategory>> collect = list.stream().collect(Collectors.groupingBy(ConsultCategory::getCmsId));

4stream根据属性进行分组,并获取某一属性的集合

 Map<String, Set<String>> collect = messageInformCms.stream().collect(Collectors.groupingBy(MessageInformCms::getState, Collectors.mapping(MessageInformCms::getContent, Collectors.toSet())));
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值