对list<map<string,object>> 进行排序,以及java8新特性

对list

list添加数据:

List<Map<String,Object>>list=new ArrayList<>();
        Map<String,Object>map=new HashMap<>();
        map.put("typeName",2);
        map.put("typeNum",2);
        list.add(map);
        Map<String,Object>map1=new HashMap<>();
        map.put("typeName",1);
        map.put("typeNum",1);
        list.add(map);
        Map<String,Object>map2=new HashMap<>();
        map.put("typeName",3);
        map.put("typeNum",3);
        list.add(map);

降序:
Collections.sort(list, new MapComparatorDesc());

  static class MapComparatorDesc implements Comparator<Map<String, Object>> {
        @Override
        public int compare(Map<String, Object> m1, Map<String, Object> m2) {
            Integer v1 = Integer.valueOf(m1.get("typeNum").toString());
            Integer v2 = Integer.valueOf(m2.get("typeNum").toString());
            if (v2 != null) {
                return v2.compareTo(v1);
            }
            return 0;
        }

    }

升序:

    static class MapComparatorDesc implements Comparator<Map<String, Object>> {
        @Override
        public int compare(Map<String, Object> m1, Map<String, Object> m2) {
            Integer v1 = Integer.valueOf(m1.get("typeNum").toString());
            Integer v2 = Integer.valueOf(m2.get("typeNum").toString());
            if (v1 != null) {
                return v1.compareTo(v2);
            }
            return 0;
        }

    }

java8新特性

   List<Map<String,Object>>list=new ArrayList<>();
        for (int i = 0; i <4 ; i++) {
            Map<String,Object> map=new LinkedHashMap<>();
            map.put("id",Convert.toInt(Math.random()*10));
            map.put("name","小明"+i);
            list.add(map);
        }
        //比较中文
        Collator collator=Collator.getInstance(Locale.CHINESE);
        Console.log(list);
        System.out.println("***********");
        Collections.sort(list,(o1,o2)->Convert.toInt(o1.get("id")) -Convert.toInt(o2.get("id")));
        Console.log(list);

在这里插入图片描述
list对象转map

 List<ApplyUnitBurnRespVO> apply1 = new ArreayList<>();
 for(int i=1 ; i<=3;i++){
 ApplyUnitBurnRespVO vo =new  ApplyUnitBurnRespVO();
  vo.setDate(i);
  vo.setMonthWeight(collect.get(next));
  vo.setLastMonthWeight(collect1.get(next));
  apply1.add(vo)
  }
  
Map<String, BigDecimal> collect1 = apply1.stream().collect(Collectors.toMap(ApplyUnitBurnRespVO::getDate, ApplyUnitBurnRespVO::getLastMonthWeight));

list对象分组查询

 Map<String, List<TfApsDayResultDetail>> collect = list.stream().collect(Collectors.groupingBy(o -> o.getResourceName() + "@" +
                    o.getMoldCode() + "@" + o.getPlanStartDate()));

list对象分组求和

 Map<String, Double> collect = list.stream().collect(Collectors.groupingBy(o -> o.getSalesmanCode() + "@" + o.getSalesman(), Collectors.summingDouble(PefsAdvanceOrderHeadReqDTO::getTotal)));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值