参见英文答案 > 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中一起使用分组和排序相关推荐

  1. [转载] java中对数组进行排序_如何在Java中对数组排序

    参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...

  2. java对列表数据排序_如何在Java中对列表进行排序

    java对列表数据排序 Sometimes we have to sort a list in Java before processing its elements. In this tutoria ...

  3. java中对数组进行排序_如何在Java中对数组排序

    java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, ...

  4. java aes密钥生成_如何在Java(Android)中生成与.Net中相同的AES密钥?

    我需要从.Net WebService提供的salt和密码生成 Java( Android)中的AES密钥.我需要使用与.net生成的密钥相同的密钥和相同的密码和盐(使用Rfc2898DeriveBy ...

  5. java uuid 排序_如何在java中将UUID保存为二进制(16)

    我有一个表TestTable,列ID为二进制(16),名称为varchar(50) 我看到UUID作为HEX(blob)保存在数据库中 所以我想从java中保存这个ID,但是我收到了这个错误 Data ...

  6. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  7. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  8. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

  9. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

最新文章

  1. sed的基本用法和高级用法
  2. 一口气说出 4种 “附近的人” 实现方式,面试官笑了
  3. MyBatis的高级映射之多对一
  4. bee 字符串转int_Beego在views中格式化显示时间(int64转string)
  5. javascript --- XMLHttp2级、CORS(跨域资源共享)
  6. STL容器删除元素的陷阱
  7. android截取网页图片,安卓版谷歌浏览器很快将获得滚动截图功能 可以用来截取整个网页...
  8. Redhat linux AS4 环境下iSCSI协议配置
  9. 钣金cad插件_ug,CAD,SolidWorks,钣金??????非标等设计
  10. mybatis的源码学习
  11. python求解按等级分配糖果问题
  12. 【批处理学习笔记】第二十二课:系统变量
  13. 看书学python靠谱吗_自学Python靠谱吗?
  14. 数值计算与计算机应用实例,数值计算的若干应用实例求解4_8.doc
  15. Profinet简介
  16. was cached in the local repository, resolution will not be reattempted until the update interval of
  17. 名悦集团:家庭用车买什么国产还是进口好
  18. NDoc - .NET 代码文档生成器
  19. Hanoi塔(汉诺塔/梵天塔)问题
  20. mysql sus bench_测量性能 (Benchmarking)

热门文章

  1. app自动化问题点整理
  2. parseInt原来是这样用的
  3. delphi 用户可以点击格式修改进行模板修改
  4. OOP面向对象编程(一)-------方法的重载
  5. 五、概念数据模型(CDM生成LDM,PDM和OOM)
  6. c3p0连接错误 An attempt by a client to checkout a Connection has timed out.
  7. 二进制,八进制,十进制,十二进制之间的转换!!!!!!!!!
  8. redis使用lua脚本
  9. HDU 1264 Counting Squares (线段树-扫描线-矩形面积并)
  10. [转]Qt 之 QFileSystemWatcher