public static LinkedHashMap<String, List<AirQualityRankingResp>> mapSortedByKey(Map<String, List<AirQualityRankingResp>> param) {
// 分组后根据key正序排列,()LinkedHashMap有序)
LinkedHashMap<String, List<AirQualityRankingResp>> collect = param.entrySet().stream().sorted(new Comparator<Map.Entry<String, List<AirQualityRankingResp>>>() {
@Override
public int compare(Map.Entry<String, List<AirQualityRankingResp>> o1, Map.Entry<String, List<AirQualityRankingResp>> o2) {
try {
Date d1 = new SimpleDateFormat("yyyy-MM").parse(o1.getKey());
Date d2 = new SimpleDateFormat("yyyy-MM").parse(o2.getKey());
return d1.compareTo(d2);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}).collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldVal, newVal) -> oldVal,
LinkedHashMap::new
));
return collect;
}
对HashMap的key进行排序
最新推荐文章于 2024-09-15 15:21:33 发布
这段代码展示了如何使用Java Stream API对一个Map的键(日期字符串)进行排序,并创建一个新的LinkedHashMap,保持排序顺序。它首先将Map的入口按日期解析并比较,然后使用Collectors.toMap转换为新的LinkedHashMap。
摘要由CSDN通过智能技术生成