Map根据Key值进行排序(升序加降序)
Map根据Key值进行排序
如果这篇文章对你有帮助的话,希望可以给博主点个赞,感谢!!
今天在写一个功能的时候,需要根据日期进行分组,于是我从数据库查找的时候就使用order by create_time desc
进行降序排序,一开始数据是正常的排序,但是当我使用stream()
进行分组之后,发现数据排序出现了问题
首先根据日期进行分组,日期作为Map的key,对应该日期的数据列表作为value进行存储,但是可以从图看出这个日期并不是降序的,这会导致前端获取到这些数据的时候无法按照正确的顺序输出。
所以我们要对这个listMap进行再一次排序。
List<EarnDetailParam> list=cereShopOrderDAO.getEarnDetails(param);
list.stream().forEach(l->l.setDate(l.getCreateTime().split(" ")[0]));
Map<String,List<EarnDetailParam>> listMap = list.stream().collect(Collectors.groupingBy(EarnDetailParam::getDate));
Map<String, List<EarnDetailParam>> result = new LinkedHashMap<>();
listMap.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByKey())).forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
首先我们根据第一条语句去数据库获取数据,由于create_time
是带有时间的,所以分组的时候需要一个新的变量去存create_time
切割后的日期
list.stream().collect(Collectors.groupingBy(EarnDetailParam::getDate))
这个语句是使用刚刚获取的date进行分组操作,之后就会得到上面的图。
由于顺序不是我们所希望的降序,所以我们还需要进行下一步操作,定义一个LinkedHashMap
进行存储,然后根据Map的Key进行排序,因为我们要的是降序操作,所以要在.sorted(Collections.reverseOrder(Map.Entry.comparingByKey()))
使用reverseOrder
进行逆序,然后将键值对赋给result
.sorted(Map.Entry.comparingByKey())
是升序
.sorted(Collections.reverseOrder(Map.Entry.comparingByKey()))
是逆序
此时就会得到我们所需要的降序分组,实现了我们想要的效果。
Map根据Key值进行排序(升序加降序)相关推荐
- java comparable排序_java 实现Comparable接口排序,升序、降序、倒叙
本人由于项目开发中需要对查询结果list进行排序,这里根据的是每一个对象中的创建时间降序排序.本人讲解不深,只实现目的,如需理解原理还需查阅更深的资料. 1.实现的效果 2.创建排序的对象 packa ...
- Java stream().sorted()实现排序(升序、降序、多字段排序)
1 自然排序 sorted():自然排序,流中元素需实现Comparable接口 package com.entity;import lombok.*;@Data @ToString @AllArgs ...
- Excel表格怎么排序?升序和降序
Excel拥有许许多多的功能,几乎你想要的效果都可与通过Excel来实现,只有想不到没有它做不到的.那么我们在处理数据的同时,会想知道哪些数据是靠前的,哪些数据是靠后的.那么我们就来给大家讲解下Exc ...
- 对list集合排序升序和降序使用sort()
Collections.sort(resultList, new Comparator<HealthRecordRepeat>() { @Override public int compa ...
- SQL-ORDER BY 多字段排序(升序、降序)
转载自:http://www.jb51.net/article/52792.htm ORDER BY _column1, _column2; /* _column1升序,_column2升序 */ O ...
- Java实现TreeMap集合的排序:Key键的升序与降序、Value值的排序
Java 提供的 Map 接口常用的实现类有 HashMap 和 TreeMap.HashMap 类实现的 Map 集合对于添加和删除映射关系效率更高.HashMap 通过哈希码对其内部的映射关系进行 ...
- java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)
java8新特性:对map集合排序,根据key或者value操作排序(升序.降序) 直接上代码: package com.drew.test; import java.util.List; impor ...
- stream流倒序排序_java8 stream 操作map根据key或者value排序的实现|chu
引言 最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂 ...
- 根据Map的value值进行排序-map排序
package com.sm.util;import java.util.ArrayList; import java.util.Collections; import java.util.Compa ...
最新文章
- 排列和组合简单的递归思路以及C++实现
- [云炬创业基础笔记]第九章企业的法律形态测试4
- 科技巨头开发人工智能 稀缺品种或成A股香饽饽
- UI设计实用素材|线框套件 WRFRM
- bzoj 1625: [Usaco2007 Dec]宝石手镯(01背包)
- H236各个版本的区别总结
- 国内十大HR系统品牌
- 员工考勤管理系统html,网页考勤系统人员排班操作说明
- ultraiso软碟通dmg转iso图文教程
- 基于51单片机的12864液晶显示4X4矩阵键盘程序仿真
- idea清除本地注册信息
- 通达信 移动平均算法_通达信擒龙攻防战法主图指标公式
- abbyyfinereader软件下载中文注册免安装激活版
- MtaEdt22.exe修改IIS连接数无效的另类解决连接数的方法
- 社区团购小程序怎么做,全流程解析
- android毗邻(Pilin)即时聊天应用源码
- 大集中系统的个人所得税解决方案
- 日乒赛-马龙爆冷止步次轮 朱雨玲陈梦率先进8强
- char类型与short类型
- 计算机文化期末试卷,计算机文化基础期末试卷.pdf
热门文章
- 7、刷牛客网SQL题(一)
- nc提示java过期_用友NC系统使用过程中常见问题和解决方法!财会必看!
- php udp,PHP UDP攻击查找源头
- python设计樱花_用Python画樱花?想得美就能画得美(上)
- Source insight 4.0 显示右边文件
- 关于“未能加载文件或程序集”的解决方法
- 迁出X86架构,你准备好了吗?
- C语言运算符与表达式课件,C语言课件(运算符和表达式).ppt
- 红警战网地图下载 红警地图库下载 红警战网客户端地图库地图下载
- Jenkins教程(4)使用PyInstaller构建Python应用