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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 完整javaEE学生信息管理系统[通俗易懂]

    完整javaEE学生信息管理系统[通俗易懂]基于javaweb的ssm学校教务管理系统(管理员,教师,学生)文章结构一、开发框架及业务方向1.开发环境2.开发框架3.整体业务二、项目结构及页面展示1.项目整体结构2.用户页面3.管理员页面***需要源码的加企鹅:671033846;备注CSDN即可******文章结构一、开发框架及业务方向1.开发环境操作系统不限:java特性,一套代码,导出运行jdk版本不限:推荐jdk1.8tomcat版本不限:推荐Tomcat8.0数据库mysql:版本不限,推荐mysql8.0以下开发工具:e

    2022年10月16日
    3
  • jsp学习笔记

    jsp学习笔记

    2021年10月3日
    44
  • django验证码登录_实名认证验证库中无此信息

    django验证码登录_实名认证验证库中无此信息djoser是什么?作用:Django认证系统的REST实现。djoser库提供了一组DjangoRestFramework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于

    2022年7月31日
    4
  • 基于51单片机步进电机控制[通俗易懂]

    基于51单片机步进电机控制[通俗易懂]实现功能:1、用矩阵键盘设定电机目标转速及旋转方向,范围100~300转/分;2、测量、显示电机实际转速和方向(正转显示“P”,反转显示“N”);从实现功能上分析,软件可以分解3个功能模块:1,步进电机控制模块2,矩阵键盘输入模块3,显示输出模块步进电机工作原理步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速…

    2022年5月31日
    33
  • VMWare的P2V、V2V使用「建议收藏」

    VMWare的P2V、V2V使用「建议收藏」1.测试环境2.软件安装双击安装文件,依次点击”下一步”,如下图:3.软件参数修改4.将物理机(192.168.80.103)转换到ESXI(192.168.80.102)在Windows10中安装vCenterConverter6转换软件,将WindowsServer2008R2或WindowsServer2012R2转换到ESXI主机。转换前注意事项:登录到…

    2022年7月14日
    20
  • pascal voc数据集下载_目标检测分类

    pascal voc数据集下载_目标检测分类一、简介PASCALVOC挑战赛主要有ObjectClassification、ObjectDetection、ObjectSegmentation、HumanLayout、ActionClassification这几类子任务PASCAL主页与排行榜PASCALVOC2007挑战赛主页、PASCALVOC2012挑战赛主页、PASC…

    2022年9月25日
    5

发表回复

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

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