hashmap顺序遍历_遍历排序

hashmap顺序遍历_遍历排序hashmap元素排序想要hashmap中的元素有序可以使用linkedHashMap。HashMap<Integer,User>hashMap=newHashMap<>();hashMap.put(1,newUser(“张三”,32));hashMap.put(2,newUser(“张四”,33));hashMap.put(3,newUser(“王五”,22));//将map转换为一个entry类型的lis


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

hashmap元素排序
想要hashmap中的元素有序可以使用linkedHashMap。

HashMap<Integer, User> hashMap = new HashMap<>();
        hashMap.put(1,new User("张三",32));
        hashMap.put(2,new User("张四",33));
        hashMap.put(3,new User("王五",22));
//将map转换为一个entry类型的list,调用comparator进行排序。再返回linkedHashMap。
List<Map.Entry<Integer,User>> list = new ArrayList<Map.Entry<Integer,User>>(entey);
Collections.sort(list, new Comparator<Map.Entry<Integer, User>>() { 
   
            @Override
            public int compare(Map.Entry<Integer, User> o1, Map.Entry<Integer, User> o2) { 
   
                //按照age倒敘排列
                return o2.getValue().getAge()-o1.getValue().getAge();
            }
        });
//創建一個HashMap的子類LinkedHashMap集合
        LinkedHashMap<Integer,User> linkedHashMap = new LinkedHashMap<Integer,User>();
        //將list中的數據存入LinkedHashMap中
        for(Map.Entry<Integer,User> entry:list){ 
   
            linkedHashMap.put(entry.getKey(),entry.getValue());
        }
        return linkedHashMap;}

HashMap的遍历。

Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) { 
   
System.out.println("key= "+ key + " and value= " + map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) { 
   
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) { 
   
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) { 
   
System.out.println("value= " + v);
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195579.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【小程序】手把手带你完成微信小程序开发实践

    【小程序】手把手带你完成微信小程序开发实践帐号相关流程注册范围企业政府媒体其他组织换句话讲就是不让个人开发者注册。:)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账户信息绑定管理员微信企业认证公司对公账户对微信进行打款账户自动验证后,自动认证通过,并将认证资金退回公司对公账户,费用在1元内随机小程序发布流程开发实践这次的demo项目为农历和公历的转换器,重在体验

    2022年9月22日
  • 利用python pip以及pyCharm安装requests第三方库「建议收藏」

    利用python pip以及pyCharm安装requests第三方库「建议收藏」在利用python进行进行数据爬虫的时候,我们通常会使用requests第三方库,安装requests的方法通常有以下几种:1)利用pip进行安装pipinstallrequests2)下载代码后安装$gitclonegit://github.com/kennethreitz/requests.git$cdrequests$pythonsetup.pyinstall3)利用…

    2022年8月28日
  • Int8,Int16,Int32,Int64 有什么不同呢?

    Int8,Int16,Int32,Int64 有什么不同呢?文章目录前言什么是计算机存储单元?Int8,Int16,Int32,nt64,后面的数字有什么意义?总结前言Int8,Int16,Int32,Int64有什么区别呢?或者是为什么后面的数字不一样呢?提示:以下是本篇文章正文内容什么是计算机存储单元?先来扫盲一下计算机存储单元,在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。计算机的基本的存储单元有:位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。二进.

    2022年8月15日
  • SQL中字符串截取函数(SUBSTRING)

    SQL中字符串截取函数(SUBSTRING)1、left(name,4)截取左边的4个字符列:SELECTLEFT(201809,4)年结果:20182、right(name,2)截取右边的2个字符SELECTRIGHT(201809,2)月份结果:093、SUBSTRING(name,5,3)截取name这个字段从第五个字符开始只截取之后的3个字符SELECTSUBSTRING(‘成都融资事…

    2022年5月24日
  • Android 结合实例学会AsyncTask的使用方法

    Android 结合实例学会AsyncTask的使用方法

    2021年12月13日
  • 腾讯 cmq_rabbitmq消息队列

    腾讯 cmq_rabbitmq消息队列环境架构图组件介绍组件监听端口CMP依赖VIP:准备工作3台8*16服务器安装文档:物料包(组件物料包和python脚本):https://cmq-1255613487.cos.ap-chengdu.myqcloud.com/install_cmq/CMQ-ALL.zip安装[192.168.1.66]前端组件:#安装#[root@node_66~]#lsCMQ-1.0.2-软件包.tar.gzmk…

    2022年10月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号