Map的遍历方式,常用的key-value遍历方式
在开发过程中经常会遇到 map 的遍历,本文将会介绍四种常用的 key-value 遍历方式
说明:
增强 for 循环遍历
- 先取出 map 的 keySet,进行遍历,再取出对应 key 的 value 值
- 先取出 map 的 entrySet,进行遍历,再取出对应 key - value 值
迭代器遍历
- 先取出 map 的 keySet,进行遍历,再取出对应 key 的 value 值
- 先取出 map 的 entrySet,进行遍历,再取出对应 key - value 值
Map中的 keySet() 用于取 map 中的所有 key 的集合
Map中的 entrySet() 用于取 map 中的所有 entry 的集合。
Entry 是一个包含 key 和 value 的键值对对象,内部

先构建一个 map 集合:
1、构建集合
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
2、遍历
2.1、方法一:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历====");
Set keyset = hashMap.keySet();
for(Object key:keyset){
System.out.println(key+"-"+hashMap.get(key));
}
运行结果如下:

2.2、方法二:先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value====");
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+hashMap.get(key));
}
运行结果:

2.3、方法三:先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value
System.out.println("====3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
运行结果:

2.4、方法四:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
运行结果:

3、完整代码
package com.example.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
/*1、先用keySet()取出所有key值,再取出对应value--增强for循环遍历*/
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增强循环 for 遍历====");
Set keyset = hashMap.keySet();
for(Object key:keyset){
System.out.println(key+"-"+hashMap.get(key));
}
/*2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value*/
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍历取 value====");
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+hashMap.get(key));
}
/*3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value*/
System.out.println("====3、先用 hashMap.通过entrySet() 方法取出所有的 key-value 的集合,再用增强循环 for 遍历一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
/*4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value*/
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍历一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
}
}
Map的遍历方式,常用的key-value遍历方式的更多相关文章
- 遍历HashMap常用的的三种方式
遍历HashMap常用的的三种方式 HashMap是我们使用非常多的集合之一,下面就来介绍几种常用的HashMap的遍历方式. 1.首先定义一个新的HashMap,并往里面添加一些数据. HashMa ...
- Map接口中的常用方法和Map集合遍历键找值方式
Map接口中定义了很多方法,常用的如下: public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作) V remove(Object key); 如果此映射 ...
- Java Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.HashMap; import java.util.Iterator; import ...
- 信1705-2 软工作业最大重复词查询思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中。 (2)定义一个Map,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。 (3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的key中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(
通过学习学会了文本的访问,了解一点哈希表用途.经过网上查找做成了下面查询文章重复词的JAVA程序. 1 思 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词 ...
- Map随笔:最常用的Map——HashMap
目录 Map随笔:最常用的Map--HashMap 前言: 1,HashMap的结构 2,HashMap的一些属性(JDK8) 3,HashMap的构造函数(JDK8) 4,HashMap的一些方法( ...
- iBATIS 传MAP处理方式(value是list的方式)
1.前提条件 参数是map结构的数据 key:String 类型 value:list 集合 2.处理方式 遍历集合一般常规的方式使用iterate,这里也不例外了,如下 <iterate op ...
- JavaScript 中的常用12种循环遍历(数组或对象)的方法
1.for 循环 let arr = [1,2,3]; for (let i=0; i<arr.length; i++){ console.log(i,arr[i]) } // 0 1 // 1 ...
- Map集合中,关于取值和遍历的相关操作
这是自己的关于map集合的相关操作的小研究,分享给大家. 主要代码内容包含以下: 1,map集合的遍历 2,根据key值获取value值 3,根据value值获取key值 4,返回最大value值对应 ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临” 在网页中弹出框输入1 网页输出“查询中……” 在 ...
- Google的分布式计算模型Map Reduce map函数将输入分割成key/value对
http://www.nowamagic.net/librarys/veda/detail/1768 上一篇 大规模分布式数据处理平台Hadoop的介绍 中提到了Google的分布式计算模型Map R ...
随机推荐
- Alertmanager结合Slack使用
Slack作为一款即时通讯工具,协作沟通主要通过Channel(平台)来完成,用户可以在企业中根据用途添加多个Channel,并且通过Channel来集成各种第三方工具. 例如,我们可以为监控建立一个 ...
- Python离线安装Flask
受限于内网,无法使用pip install Flask直接安装. 以Flask-0.12.2为例 安装Flask需要以下的依赖性,在安装Flask离线版时可以看到依赖性要求. 离线安装文件地址: ht ...
- BGCN Rec:模型结构概述
简单论述 BGCN将user-item interaction,user-bundle interaction和bundle-item affiliation 关联到统一的异构图中.以项目节点为桥梁, ...
- Windows Socket 接口简介
Windows Socket接口是Windows下网络编程的接口,在介绍Windows Socket接口之前,首先要简单介绍一下TCP/IP协议和描述网络系统架构的 OSI模型,以及TCP/IP模型 ...
- 将Java代码打包成jar文件转换为.exe可执行程序方法
做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法. 将Java的代码转换成 .exe 文件需要先把代码打包成 jar 文件然 ...
- Linux的挖矿木马病毒清除(kswapd0进程)
1.top查看资源使用情况 看到这些进程一直在变化,但是,主要是由于kswapd0进程在作怪,占据了99%以上的CUP,查找资料后,发现它就是挖矿进程 2.排查kswapd0进程 执行命令netsta ...
- Windows7下驱动开发与调试体系构建——5.实战反调试标记位(NtGlobalFlag)
目录/参考资料:https://www.cnblogs.com/railgunRG/p/14412321.html <加密与解密>P670中,介绍了检查程序是否被调试的第二种方法:查看进程 ...
- 微信支付v3接口的 官方 Java SDK
啰嗦几句:微信支付v3版接口麻烦吗?在对接微信支付v3接口时,本来是一件很简单的事情,其实微信支付v3接口并不是很复杂,但是微信团队的管理很混乱,给我们开发者带来了巨大的麻烦. 微信支付v3版接口对接 ...
- SCI简介和写作顺序
一.SCI论文组成部分简介 一篇完整的 sci 论文主要包括以下几个主要的组成部分,从前往后依次分别是 Title 就是说这个文章的标题其次是 Abstract 也就是这个文章的摘要.接下来是 Int ...
- Java项目有可能做到所有的代码逻辑均可热部署吗?
前言 首先我们明确下什么叫做热部署,热部署是在不重启java虚拟机的前提下,自动更新class的行为,从而更新整个运行时的逻辑. 在java开发领域,热部署一直是一个难以解决的问题,java虚拟机理论 ...