HashMap遍历以及遍历顺序_5、编写函数,将以下hashmap中的值按照添加顺序遍历输出?(例如,以下需要在控制台输-程序员宅基地

技术标签: JAVA  java  hashmap  

HashMap遍历以及遍历顺序

HashMap是Java语言中一种键值对(key-value)数据结构,但不记录key的插入顺序,如果要按照插入顺序进行遍历,则需要使用LinkedHashMap类型。
本文将介绍下HashMap的三种遍历方式,LinkedHashMap遍历方式相同!

(在leetcode12. 整数转罗马数字题目中使用到HashMap遍历,遂做此记录!)

HashMap结构定义如下:

Map<Integer, String> map = new HashMap<Integer, String>(){
    
    // 以匿名函数方式进行初始化
    {
    
        put("M",1000);
        put("D",500);
        put("C",100);
        put("L",50);
        put("X",10);
        put("V",5);
        put("I",1);
    }
};

因为HashMap结构在存储key值时是无序的,所以遍历结果不会与代码put顺序一致!!!

1、map.entrySet()遍历key-value
for (Map.Entry<String, Integer> entry : map.entrySet()){
    
    System.out.println(entry.getKey());
}

// 输出结果为
C
D
V
X
I
L
M
2、map.keySet()仅遍历键
for(String key : map.keySet()){
    
    System.out.println(key);
}

// 遍历结果为
C
D
V
X
I
L
M
3、map.values()仅遍历值
for (Integer value : map.values()){
    
    System.out.println(value);
}

// 遍历结果为
100
500
5
10
1
50
1000

如果需要按照插入key值的顺序遍历,则需要使用LinkedHashMap结构!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SmallChaochao/article/details/116806385

智能推荐

第035讲: 图形界面用户入门:EasyGui | 学习记录(小甲鱼零基础入门学习Python)_easygui图形界面编程入门-程序员宅基地

文章浏览阅读927次。(标答出处: 鱼C论坛)《零基础入门学习Python》测试题:_easygui图形界面编程入门

用IntelliJ IDEA 社区版配置web开发环境-程序员宅基地

文章浏览阅读2.4k次。IntelliJ IDEA社区版缺少的是Web方面的开发模块旗舰版: 社区版: 要用 IDEA 社区版进行web开发的话,需要自己手动配置由于IDEA社区版(Commun..._idea社区版指定不了环境

《编写有效用例》阅读笔记01-程序员宅基地

文章浏览阅读69次。《编写有效用例》是美国AlistairCockburn的著作全书分为三部分:1.用例体部分2.在需求分析过程中经常遇到的问题3.对忙于编写用例的人的提示今天我主要阅读了第一部分。在作者的引导下思考了以下问题:1. 什么是用例?例用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生..._alistair cockburn。编写有效用例

利用时间序列ARMA模型和LSTM算法分析并预测pm2.5值_adf、pvalue、usedlag、nobs、critical values、icbest、reg-程序员宅基地

文章浏览阅读1.3w次,点赞8次,收藏92次。数据来源于 UC Irvine Machine Learning Repository网站中的Beijing PM2.5 Data Data Set,数据文件类型为CSV。一、利用ARMA模型数据平稳性分析还是以天为单位分析这五年之内的pm2.5值,并绘制曲线ARIMA 模型对时间序列的要求是平稳型,观察图标能看出其没有固定的上升或下降的趋势,粗略判断是平稳序列。不进行差分操作..._adf、pvalue、usedlag、nobs、critical values、icbest、regresults、resstore

ubuntu安装xsser及使用_xsser下载-程序员宅基地

文章浏览阅读1.8k次。XSSer:自动化XSS漏洞检测及利用工具参考https://xsser.03c8.net/下载访问网址,进行下载https://github.com/epsylon/xsser解压到指定位置配置安装依赖,执行sudo apt-get install python-pycurl python-xmlbuilder python-beautifulsoup python-geo..._xsser下载

给Windows安装Apache 24和php 7_apache24和php8 windows-程序员宅基地

文章浏览阅读559次。原文链接https://danielarancibia.wordpress.com/2015/09/27/installing-apache-2-4-and-php-7-for-development-on-windows/Installing Apache 2.4 and PHP 7 for Development on WindowsPosted on septiembre 27, 2015 ..._apache24和php8 windows

随便推点

AfxMessageBox与MessageBox函数_仿afxmessagebox-程序员宅基地

文章浏览阅读725次。创建消息提示对话框:前者调用的是MFC的底层函数库,后者调用的是最为基本的Win32 API。MessageBox()的函数原型如下: int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );..._仿afxmessagebox

Binder传输机制原理(一)_binder句柄值-程序员宅基地

文章浏览阅读1.3k次,点赞3次,收藏7次。1 Binder是如何做到精确打击的? 我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结构是属于应用层次的东西,仅靠它当然无法完成精确打击。其实,在binder驱动层,还有个与之相对的结构,叫做binder_proc。为了说明问题,我修改了初始篇中的示意图,得到下图:1.1 创建bind..._binder句柄值

AJ-Report 禁用flyway以及切换底层数据库方案_ajreport没有数据库表-程序员宅基地

文章浏览阅读905次。禁用flyway为了解决之前有很多小伙伴因为数据库的版本问题,存在一些sql脚本语法不支持,导致数据库初始化失败配置文件bootstrap.yml,将spring.flyway.enabled改为false即可。spring: flyway: enabled: true #是否开启flyway,默认true. baseline-on-migrate: true #数据库连接配置 url: ${spring.datasource.url} user:_ajreport没有数据库表

d3.js学习(时间轴-多折线图)_d3时间轴-程序员宅基地

文章浏览阅读6.2k次。根据项目的要求,利用d3.js画出x轴为时间轴,多条折线的折线图,看了官方的文档和很多参考资料才做了出来。所以想分享给程序猿朋友们。(网上找的基本上都不满足需求。只能靠自己一步一步写下来)成果曲线图:step1: 准备数据// 数据,{ x: 为时间轴,y: 相对应的值}var trendData = [[{'x':'2018-02-01','y':1},{'x..._d3时间轴

Win-MASM64汇编语言-CMP/CMPSB/CMPSW/CMPSD/JNE/JCXZ-程序员宅基地

文章浏览阅读2.2k次。怀念二抱三抱_cmpsd

5. 测试fabric-sdk-node应用_kevin-fabric-sdk-node-程序员宅基地

文章浏览阅读893次,点赞3次,收藏7次。从零到壹构建基于fabric-sdk-node的项目开发实战之五运行示例程序一切就绪,现在可以开始测试我们的应用程序了。终端窗口 1进入项目根目录:$ cd $HOME/kevin-fabric-sdk-node使用 docker-compose 命令启动网络$ docker-compose -f artifacts/docker-compose.yaml up终端..._kevin-fabric-sdk-node

推荐文章

热门文章

相关标签