Map根据key排序

时间:2025-04-04 07:49:38

Map根据key排序

  • 按月份将List进行分组,再排序

按月份将List进行分组,再排序

1、按月份将List进行分组

  Map<String, List<PrsCalcData>> result = ().collect((PrsCalcData::getSmo));

2、注意此处的key是string类型,是用于一般排序

  Map<String,List<PrsCalcData>> smoMap = ().stream()
          .sorted(())
          .collect((::getKey, ::getValue,
                 (oldValue, newValue) -> oldValue, LinkedHashMap::new));

3、注意由于,String类型的"11"比"2"大,所以需要转换一下

   Map<String,List<PrsCalcData>> smoMap = ().stream()
          .sorted(new Comparator<<String, List<PrsCalcData>>>() {
            @Override public int compare(<String, List<PrsCalcData>> o1, <String, List<PrsCalcData>> o2) {
              Integer key1 = (());
              Integer key2 = (());
              return (key2);
            }
          })
          .collect((::getKey, ::getValue,
                  (oldValue, newValue) -> oldValue, LinkedHashMap::new));