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


相关推荐

  • oracle11g详细安装教程_oracle11g32位安装

    oracle11g详细安装教程_oracle11g32位安装1、首先从http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下载合适的oracle数据库版本。2、解压压缩包,点击setup.exe,开始安装,一下为安装步骤的截图:口令:oracle11g第四步如果不是集群服务器要选择单实例数据库安装。

    2022年9月21日
    0
  • 用 Java3D 写游戏

    用 Java3D 写游戏2009-03-2413:26:51|  分类: Java3D先介绍下相关的技术吧Java3D 作为SUN公司较早推出的一项3D技术,是一种高度封装的API,构建在OpenGL和Direct3D之上,可以说是最有名的Java的3D技术。由于种种原因(A

    2022年5月25日
    28
  • Linux(Ubuntu)系统查看显卡型号

    Linux(Ubuntu)系统查看显卡型号给我的Ubuntu安装显卡驱动时,需要查看显卡型号,因为我的是Windows/Ubuntu双系统,一开始想到的是去windows查看,然后下载驱动,安装成功。方法一、lspci|grep-ivga后来想看一下linux怎么查看显卡型号,搜到命令lspci|grep-ivga,但返回的是一个十六进制数字代码,如下图:遂,继续百度,但都只是说了命令,没解释返回结果什么意思。又……

    2022年7月26日
    4
  • DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703

    DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703

    2021年7月19日
    497
  • PyCharm激活码永久有效PyCharm2021.1.1激活码教程-持续更新,一步到位[通俗易懂]

    PyCharm激活码永久有效PyCharm2021.1.1激活码教程-持续更新,一步到位[通俗易懂]PyCharm激活码永久有效2021.1.1激活码教程-Windows版永久激活-持续更新,Idea激活码2021.1.1成功激活

    2022年6月19日
    77
  • mfc可视化界面_mfc界面开发

    mfc可视化界面_mfc界面开发亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBarProfessionalforMFC和BCGSuiteforMFCv32.2正式发布!新版本改进的功能区和框架标题命令搜索、带有可选复选框的网格日期选择器、带有标签的功能区滑块等,需要最新版的可以点击这里【BCG下载】BCGControlBarProforMFCv32.2正式版下载RibbonBar1.新的全局变量globalData.m_sizeRibbonCategoryPadding和glo.

    2022年10月8日
    0

发表回复

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

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