Collections.sort对 List<map>按照日期大小进行排序

1、查询的数据结果,这里的数据有重复的天数的:

List<InspectStatisticsVo> list = inspectStatisticsMapper.queryInspectList(inspectStatisticsVo);

2、将数据按照日期进行分组,分组之后一天为一组数据,数据放在map中:

Map<String, List<InspectStatisticsVo>> map = list.stream().collect(Collectors.groupingBy(InspectStatisticsVo::getRecordTime));

3、新建一个接收日期排序后的listA,格式是list<map>形式:

List<Map.Entry<String, List<InspectStatisticsVo>>> listA = new ArrayList<>(map.entrySet());

4、用Collections.sort进行排序,有升序和倒叙两种:

Collections.sort(listA, new Comparator<Map.Entry<String, List<InspectStatisticsVo>>>() {
            public int compare(Map.Entry<String, List<InspectStatisticsVo>> o1, Map.Entry<String, List<InspectStatisticsVo>> o2) {
                return (o1.getKey()).toString().compareTo(o2.getKey());//日期升序
                /*return (o2.getKey()).toString().compareTo(o1.getKey());*/ //日期倒叙
            }
        });
经验分享 程序员 微信小程序 职场和发展