java 8中排序_如何在JAVA 8中一起使用分组和排序
参见英文答案 > Java 8 is not maintaining the order while grouping 2个
我试图对列表进行排序,然后对元素进行分组.问题是,当我对元素进行分组时,排序顺序是为了折腾.
下面是我的一段代码
listOfRooms.stream().sorted(Comparator.comparing(DXARoom::getStayAverageRate))
.collect(Collectors.groupingBy(DXARoom::getRoomInfoLabel));
这就是我输出上述代码的方式
{
"Presidential suite": [
{
"roomInfoLabel": "Presidential suite",
"stayAverageRate": "1696.0",
},
{
"roomInfoLabel": "Presidential suite",
"stayAverageRate": "1729.0",
},
"Premier king room": [
{
"roomInfoLabel": "Premier king room",
"stayAverageRate": "370.0",
},
{
"roomInfoLabel": "Premier king room",
"stayAverageRate": "377.0",
},
}
基本上,我的要求是首先显示最便宜的房型.
所以输出应该由Premier大床房首先分组,因为它有最便宜的房间370英镑.
预期输出 – >
{
"Premier king room": [
{
"roomInfoLabel": "Premier king room",
"stayAverageRate": "370.0",
},
{
"roomInfoLabel": "Premier king room",
"stayAverageRate": "377.0",
},
"Presidential suite": [
{
"roomInfoLabel": "Presidential suite",
"stayAverageRate": "1696.0",
},
{
"roomInfoLabel": "Presidential suite",
"stayAverageRate": "1729.0",
}
}
你能否建议我任何替代方法或上述实施的错误,欢迎任何新的想法.
解决方法:
您需要使用扩展的groupingBy函数来创建TreeMap或其他一些NavigableMap:
listOfRooms.stream().
.collect(Collectors.groupingBy(DXARoom::getRoomInfoLabel,
() -> new TreeMap(Comparator.comparing(DXARoom::getStayAverageRate)),
Collectors.toList()));
标签:java,java-8,java-stream
来源: https://codeday.me/bug/20190828/1750147.html
java 8中排序_如何在JAVA 8中一起使用分组和排序相关推荐
- [转载] java中对数组进行排序_如何在Java中对数组排序
参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...
- java对列表数据排序_如何在Java中对列表进行排序
java对列表数据排序 Sometimes we have to sort a list in Java before processing its elements. In this tutoria ...
- java中对数组进行排序_如何在Java中对数组排序
java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, ...
- java aes密钥生成_如何在Java(Android)中生成与.Net中相同的AES密钥?
我需要从.Net WebService提供的salt和密码生成 Java( Android)中的AES密钥.我需要使用与.net生成的密钥相同的密钥和相同的密码和盐(使用Rfc2898DeriveBy ...
- java uuid 排序_如何在java中将UUID保存为二进制(16)
我有一个表TestTable,列ID为二进制(16),名称为varchar(50) 我看到UUID作为HEX(blob)保存在数据库中 所以我想从java中保存这个ID,但是我收到了这个错误 Data ...
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- Java poi 列移动_如何在java xssf中移動列poi
如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...
- java 精确到微妙_如何在Java中以微秒精度测量时间?
我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...
最新文章
- sed的基本用法和高级用法
- 一口气说出 4种 “附近的人” 实现方式,面试官笑了
- MyBatis的高级映射之多对一
- bee 字符串转int_Beego在views中格式化显示时间(int64转string)
- javascript --- XMLHttp2级、CORS(跨域资源共享)
- STL容器删除元素的陷阱
- android截取网页图片,安卓版谷歌浏览器很快将获得滚动截图功能 可以用来截取整个网页...
- Redhat linux AS4 环境下iSCSI协议配置
- 钣金cad插件_ug,CAD,SolidWorks,钣金??????非标等设计
- mybatis的源码学习
- python求解按等级分配糖果问题
- 【批处理学习笔记】第二十二课:系统变量
- 看书学python靠谱吗_自学Python靠谱吗?
- 数值计算与计算机应用实例,数值计算的若干应用实例求解4_8.doc
- Profinet简介
- was cached in the local repository, resolution will not be reattempted until the update interval of
- 名悦集团:家庭用车买什么国产还是进口好
- NDoc - .NET 代码文档生成器
- Hanoi塔(汉诺塔/梵天塔)问题
- mysql sus bench_测量性能 (Benchmarking)
热门文章
- app自动化问题点整理
- parseInt原来是这样用的
- delphi 用户可以点击格式修改进行模板修改
- OOP面向对象编程(一)-------方法的重载
- 五、概念数据模型(CDM生成LDM,PDM和OOM)
- c3p0连接错误 An attempt by a client to checkout a Connection has timed out.
- 二进制,八进制,十进制,十二进制之间的转换!!!!!!!!!
- redis使用lua脚本
- HDU 1264 Counting Squares (线段树-扫描线-矩形面积并)
- [转]Qt 之 QFileSystemWatcher