java中对Map中的key顺序排序

这篇具有很好参考价值的文章主要介绍了java中对Map中的key顺序排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.使用List的默认方法 sort 或者 Collections.sort 进行排序这种方法需要对map的key进行转换

Map<String,String> map=new HashMap<>();
map.put("4","maliu");
map.put("1","张三");
map.put("3","李四");
map.put("7","王五");
map.put("9","赵六");
map.put("2","老六");
ArrayList<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
//排序条件
entries.sort(Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey())));
//Collections.sort(entries, Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey())));
HashMap<String, String> news = new LinkedHashMap<>();
for (Map.Entry<String, String> entry : entries) {
    news.put(entry.getKey(),entry.getValue());
}
news.forEach((a,b)->{
    System.out.printf("k -> %s | v -> %s%n", a,b);
});

2.使用TreeMap的特性进行排序

Map<String,String> map=new HashMap<>();
map.put("4","maliu");
map.put("1","张三");
map.put("3","李四");
map.put("7","王五");
map.put("9","赵六");
map.put("2","老六");
TreeMap<String, String> treeMap = new TreeMap<>(map);
treeMap.forEach((k,v)->{
    System.out.printf("k -> %s | v -> %s%n", k,v);
});

2.1.在TreeMap基础上自定义排序方法

原文链接:https://blog.csdn.net/zixuexiaobaihu/article/details/109850832文章来源地址https://www.toymoban.com/news/detail-705368.html

Map<String,String> map=new HashMap<>();
map.put("1","maliu");
map.put("22","张三");
map.put("4444","李四");
map.put("666666","王五");
map.put("55555","赵六");
map.put("333","老六");
//TreeMap<String, String> treeMap = new TreeMap<>((o1,o2)-> o2.length()-o1.length());
//TreeMap<String, String> treeMap2 = new TreeMap<>((o1,o2)-> o1.length()-o2.length());
TreeMap<String, String> treeMap = new TreeMap<>(Comparator.comparingInt(String::length));
treeMap.putAll(map);
treeMap.forEach((k,v)->{
    System.out.printf("k -> %s | v -> %s%n", k,v);
});

到了这里,关于java中对Map中的key顺序排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法

    js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法 浏览器获取结果变成了: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vkNViJ4-1683592135147)(C:UsersquyanliangAppDataRoamingTyporatypora-user-images1683592070705.png)] 所以

    2024年02月05日
    浏览(46)
  • Java Map中Value值的排序(利用Map统计次数)

    引起我思考Java中Map排序问题,是来源于 LeetCode 501. 二叉搜索树中的众数。 这道题要求根据一棵给定的二叉搜索树,在树中找出结点中出现次数最多的那个值,且不唯一。换句话说,也就是在树中搜索众数,且不唯一。 看到这道题时,首先就想到要遍历整棵树中的每个结点,

    2024年02月02日
    浏览(51)
  • Java将一个list<T>指定key转换成Map<list>

    经常有这种,一个数据库里有多个字段,但是数据库只能返回一个list,你group分组了也没用。 然后你得到的是一个list,你想根据type分组,大概是这样 [ {\\\"name\\\":\\\"牛奶\\\",\\\"desc\\\":\\\"吃了有力气\\\",\\\"type\\\":\\\"食物\\\"}, {\\\"name\\\":\\\"猫耳朵\\\",\\\"desc\\\":\\\"富含丰富油脂\\\",\\\"type\\\":\\\"食物\\\"}, {\\\"name\\\":\\\"电脑\\\",\\\"desc\\\":\\\"可以提升

    2024年01月24日
    浏览(51)
  • Java中用Stream流对List对象集合转Map时key值重复的操作

    看完你还不懂,你直接喷·· 定义: 1.List是一个装Dto对象的集合 2.Dto里面有ID属性,name属性等等 3.Dto里面的ID会重复  现在要把List转成以ID为key值的map,明显key不能重复啊,所以应该怎么操作呢? (需要你有java8Stream流的基本概念,map的基本概念)   操作1:重复key,选择保留

    2024年01月18日
    浏览(55)
  • Java8使用stream流给List<Map<String,Object>>分组(多字段key)

    Java8使用 stream流 给ListMapString,Object根据字段key 分组 一、项目场景: 从已得到的List集合中,根据某一元素(这里指map的key)进行分组,筛选出需要的数据。 如果是SQL的话则使用 group by 直接实现,代码的方式则如下: 使用到stream流的 Collectors.groupingBy() 方法。 二、代码实现 1、首

    2024年02月02日
    浏览(60)
  • Java中的Map

    Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 创建Map集合的对象:因为Map是接口,不能直接创建对象,所以我们使用多态的方式来创建.在这里我们可以创建实现类HashMap的对象 方法名 说明 V put(Object key, V value) 添加元

    2024年02月14日
    浏览(43)
  • 微信小程序调用map数据 并在wxml中对数组进行截取的操作

    wxs文件的位置如图   实现数组截取 只保留五张图片  ************这个是slicefunc.wxs里的内容是重点***************************** 以下的代码不重要 只是记录用的

    2024年02月13日
    浏览(39)
  • java将map中的值复制到另一个map中

    问题描述: 需要将一个sourceMap中设置的属性值copy到另一个targetMap中去,要求在sourceMap中没有设置的值,targetMap要保持不变,并且支持List中有Map的情况的复制。 **解决方案:**递归复制map中的值,List中如果是map的话则继续递归复制值。代码在最后面 sourceMap如下: targetMap如下

    2024年02月12日
    浏览(46)
  • Java多条件排序使用Comparator和thenComparing【包含排序List<Map<String, String>>】

    在Java中,对一个列表或集合进行排序时,经常需要基于多个条件来排序。幸运的是,Java提供了强大的 Comparator 接口,以及 thenComparing 方法,使我们能够轻松地实现多条件排序。 Comparator 接口是Java用于自定义对象排序的关键接口。它包含了一个 compare 方法,允许我们定义如何

    2024年02月04日
    浏览(49)
  • JavaSE进阶 | Map集合、HashMap集合、TreeMap集合

    目录 🏀Map集合概述  🥅Map接口常用的方法 🥅哈希表(散列表)数据结构 🥅同时重写HashCode和equals 🥅HashMap和Hashtable的区别 🥅Properties类 🥅TreeSet(TreeMap)集合 🥅自平衡二叉树数据结构 🥅实现比较器接口 🥅集合工具类Collections (1) Map和Collection没有继承关系,是一个平级的

    2023年04月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包