Map根据key排序
按月份将List进行分组,再排序
1、按月份将List进行分组
Map<String, List<PrsCalcData>> result = data.stream().collect(Collectors.groupingBy(PrsCalcData::getSmo));
2、注意此处的key是string类型,是用于一般排序
Map<String,List<PrsCalcData>> smoMap = result.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
3、注意由于,String类型的"11"比"2"大,所以需要转换一下
Map<String,List<PrsCalcData>> smoMap = result.entrySet().stream()
.sorted(new Comparator<Map.Entry<String, List<PrsCalcData>>>() {
@Override public int compare(Map.Entry<String, List<PrsCalcData>> o1, Map.Entry<String, List<PrsCalcData>> o2) {
Integer key1 = Integer.parseInt(o1.getKey());
Integer key2 = Integer.parseInt(o2.getKey());
return key1.compareTo(key2);
}
})
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
本文介绍了一种使用Java Stream API按月份将列表中的数据进行分组并排序的方法。通过`Collectors.groupingBy()`方法根据月份字段进行分组,并利用自定义比较器对分组后的Map按月份进行排序。
1814

被折叠的 条评论
为什么被折叠?



