常会有这样的需求,这里记录下。

有个map:

      Map<Integer,Integer> map = new HashMap<>();map.put(1,5);map.put(3,4);map.put(2,4);

对其排序:

  1. 拿出map中的Entry成为一个列表
  2. 调用列表sort方法,传入Comparator
  3. Comparator的比较规则自己定义,这里是:按值大小排序,若值相同,按key大小排序
        List<Map.Entry<Integer,Integer>> list = new ArrayList<>(map.entrySet());list.sort(new Comparator<Map.Entry<Integer, Integer>>() {@Overridepublic int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {if (o1.getValue().equals(o2.getValue())) {return o1.getKey().compareTo(o2.getKey());}return o1.getValue().compareTo(o2.getValue());}});}

这样可得到排好序的list:

[2=4, 3=4, 1=5]

hashmap按值排序相关推荐

  1. java的hashmap排序_Java面试题:如何对HashMap按键值排序

    Java中HashMap是一种用于存储"键"和"值"信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. ...

  2. 如何对HashMap按键值排序

    Java中HashMap是一种用于存储"键"和"值"信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. ...

  3. java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...

  4. Java8 Stream(6)List集合排序 多字段排序 Null值排序

    一.单字段排序 先造点数据 pigs.add(new Pig(1, "猪爸爸", 31, "M", false)); pigs.add(new Pig(2, & ...

  5. Python 字典创建、更新、按键值排序、取最大键值对等操作

    1. 字典创建 In [1]: d = {}In [2]: d Out[2]: {}In [3]: d = dict()In [4]: d Out[4]: {}In [5]: dict(a=1,b=2 ...

  6. 根据数组中对象的属性值排序倒叙

    数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...

  7. 用中值排序基数法实现树状结构 (转)

    在BBS的编写中,经常有人问怎样实现树状结构?一个比较不负责任的回答是:使用递归算法.当然,递归是一个可行的办法 (二叉树的历遍也好象只能使用递归算法),但对于BBS来说,这样做势必要进行大量的Sql ...

  8. pandas对dataframe进行排序:单数据列排序、多数据列排序、NA值排序位置、排序算法

    pandas对dataframe进行排序:单数据列排序.多数据列排序.NA值排序位置.排序算法 目录 pandas对dataframe进行排序 #仿真数据 #基于单数据列进行dataframe排序

  9. python中字典按键或键值排序

    字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...

  10. python字典相同key的值怎么分别取出_python字典值排序并取出前n个key值的方法

    python字典值排序并取出前n个key值的方法 今天在写一个算法的过程中,得到了一个类似下面的字典: {'user1':0.456,'user2':0.999,'user3':0.789,user: ...

最新文章

  1. Python之经典编程练习题及源码
  2. Kubernetes Liveness and Readiness Probes
  3. html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...
  4. H5实现微信摇一摇功能
  5. NeurIPS'20 | 通过文本压缩,让BERT支持长文本
  6. python调用c++_python高性能编程之Cython篇 第一章
  7. 国内厂商 Onyx 违反 GPL 协议,中国开源何去何从?
  8. 拼夕夕订单超时未支付自动关闭实现方案!
  9. 局部坐标系和全局坐标系
  10. spark 源码分析之十九 -- DAG的生成和Stage的划分
  11. 服务器配置织梦系统,DedeCMS织梦系统设置说明:核心设置
  12. 2020-我的后端开发秋招之路
  13. opencv 滤镜效果php,opencv滤镜-去色滤镜
  14. java学习笔记---3
  15. JavasScript 第二天课 课后笔记 2022.3.26
  16. 计算相关系数 皮尔逊相关系数 Pearson、Spearman
  17. qq空间网页设计_网页设计中的负空间
  18. 像游戏一样办公,赋能OA系统转型
  19. 系统架构设计师教程-学习-记录(1)系统架构师知识结构
  20. 【mybatis】mybatis的工作原理

热门文章

  1. 禁忌搜索算法(Tabu Search)的基本原理与算法流程总结
  2. java如何进行性能调优,Java性能调优常用方法
  3. Linux 2.6内核配置说明(Device Drivers设备驱动程序)
  4. H5小游戏框架总结推荐
  5. 2019马哥python的百度网盘_马哥 2018 Python 全栈视频
  6. CVBS视频信号解析
  7. 7.1 php7.0 微擎_php7.1以上微擎-人人商城小程序授权登录问题
  8. epoll文件服务器,使用epoll模型的服务器
  9. 超级搜索术1-信息搜索/资源搜索
  10. 数字水印技术的原理、实现及其应用