Java stream 操作

先按照某一字段分组,再按照另外字段获取最大的那个

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)));

分组

List<Matchs> matchsList = new ArrayList();
    
    Map<String,List<Matchs>> MatchsListMap=matchsList.stream().collect(Collectors.groupingBy(Matchs::getMatchDate));    

Map<String, List<Map<String, Object>>> res= dataList.stream().collect( groupingBy(map -> map.get("d").toString()));

list中抽出某一个字段的值

List orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());

List<String> ids= prnInfo.stream().map(m -> m.get("id").toString()).collect(Collectors.toList());  

过滤

List<Map<String, Object>> res = prnInfo .stream().filter(e ->Integer.parseInt(e.get("caseFlag").toString()) != 0).collect(Collectors.toList());

变更

List<Map<String, Object>> res= prnInfo .stream().map(x -> {
                x.put("encd", Double.parseDouble(x.get("rz")+"")-Double.parseDouble(x.get("tdz")+""));
            return x;
        }).collect(Collectors.toList());
 

排序

List<Map<String, Object>>  res= prnInfo.stream().sorted((e1,e2) -> {
return -Double.compare(Double.valueOf(e1.get("num").toString()),Double.valueOf(e2.get("num").toString()));
}).collect(Collectors.toList());
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值