Map集合的六种遍历方式
学习目标:
熟练掌握Map的遍历方式
例题:
需求:遍历Map集合
代码如下:
package com.yy.object.test.test_collection;
import java.util.*;
/**
* @author YanYang
* @projectName day02
* @description: TODO
* @date 2021/3/30 19:48
*/
public class MapTest02 {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "光头强");
map.put(2, "熊大");
map.put(3, "熊二");
/**
* 第一种方法
* map.keySet() 返回一个 set<类型为key的类型> 集合
* 由于这种方式在遍历中又获取了一遍值,所以这种方式比第二种方式慢很多
*/
// foreach遍历
for(Integer keys : map.keySet()) {
System.out.println("key = " + keys + ", value = " + map.get(keys));
}
System.out.println(".......................");
// Iterator遍历
Iterator<Integer> iterator = map.keySet().iterator();
while(iterator.hasNext()) {
Integer key = iterator.next();
System.out.println("key = " + key+ ", value = " + map.get(key));
}
System.out.println("-------------------------");
/**
* 第二种
* Map.Entry<>是 Map 中的一个接口,Map.Entry 中封装了 getKey() 和 getValue()方 法,可以获得相应的 key 和 value
* map.entrySet() 返回一个实现了 Map.Entry 接口的对象的set集合
*/
// 使用foreach遍历输出
Set<Map.Entry<Integer, String>> set = map.entrySet();
for(Map.Entry<Integer, String> items : set) {
System.out.println("key = " + items.getKey() + ", value = " + items.getValue());
}
System.out.println(".......................");
// 使用Iterator遍历输出
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> m = it.next();
System.out.println("key = " + m.getKey() + ", value = " + m.getValue());
}
System.out.println("-------------------------");
/**
* 第三种,第三种是通过 Map 的 values() 方法获得一个 cllection<String> 集合
*/
for(String str : map.values()) {
System.out.println("value = " + str);
}
System.out.println(".......................");
Iterator iterator1 = map.values().iterator();
while(iterator1.hasNext()) {
System.out.println("value = " + iterator1.next());
}
}
}
运行结果:
"C:\Program Files\Java\jdk-11.0.9\bin\java.exe"
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
.......................
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
-------------------------
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
.......................
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
-------------------------
value = 光头强
value = 熊大
value = 熊二
.......................
value = 光头强
value = 熊大
value = 熊二
Process finished with exit code 0
总结:
以上就是Map遍历的几种方式了,代码仅供参考,欢迎讨论其他的遍历方式。
Map集合的六种遍历方式的更多相关文章
- Map 的四种遍历方式
Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...
- Java集合01----ArrayList的遍历方式及应用
Java集合01----ArrayList的遍历方式及应用 前面已经学习了ArrayList的源代码,为了学以 ...
- 遍历Map集合的几种方式
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entr ...
- Java中Map常用方法总结以及遍历方式的汇总
一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...
- map的四种遍历方式
map是Java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口. 所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素. ...
- 实现斗地主纸牌游戏---洗牌 发牌 看底牌的具体功能------Map集合存储方法 遍历的应用
该Demo只是斗地主的游戏的一部分,实现的斗地主的组合牌 洗牌 发牌 看牌的功能,主要应用Map集合进行练习 package cn.lijun import java.util.ArrayList ...
- Map的两种遍历方式
********************************************************************************* ****************** ...
- java Map的四种遍历方式
1.这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Int ...
- Java中Map的4种遍历方式
第一种方式:这是平常用的最多也最可取的一种遍历方式. for (Map.Entry<String, Object> entry : map.entrySet()) { System.out ...
随机推荐
- Jmeter--由PV估算tps和最大并发数
需求 "假设一个系统的业务有登录.浏览帖子.发送新贴.回复帖子,访问高峰是上午10点,日访问高峰PV约5208(含登录1300.浏览2706.发帖526.回帖676).系统响应时间要求小于3 ...
- git flow 工作流程以及常用命令
一.分支介绍 master 也是产品分支,只有一个,一般情况下不会在这个分支上进行代码操作 develop 只有一个,新特性的开发是基于 develop 开发的,但是不能直接在 develop 上进行 ...
- js location.href 和 php header 跳转方式
if ($result){ echo '添加成功';// header('refresh:3,url=user_nameList.php'); echo "<script> al ...
- WPF中Enter 焦点转移方法
1.Set the TabIndex="16"2. private void detailGrid_Keydown(object sender, KeyEventArgs e) { ...
- Python:用pyinstrument做性能分析
导引 在计算密集型计算或一些Web应用中,我们常常需要对代码做性能分析.在Python中,最原始的方法即是使用time包中的time函数(该函数以秒为计时单位): from time import s ...
- Apache BeanUtils与Spring BeanUtils性能比较
在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性 ...
- Linux上后台保持Terminal交互运行的三种方式:nohub、screen和tmux
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 后台运行 Linux上,如果一个进程需要保持后台运行,尤其是在Linux服务器上,后台运行程序.避免因为SSH连接断开而导致进程停止运行时,该怎么 ...
- [XNUCA 进阶篇](web)writeup
XNUCA 靶场练习题writeup default 阳关总在风雨后 题目过滤很多,*,#,/ ,and,or,|,union,空格,都不能用 盲注,最后的姿势是:1'%(1)%'1 中间的括号的位置 ...
- 西门子S210驱动器接线
参考:SINAMICS S210 操作说明 1.系统概述 P28 节2.2 单相版驱动器的系统组件和附件 2.电源接线 P56 节3.2 单相 230 V 版驱动器的连接示例 单相版驱动器在 IT 电 ...
- Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)
插入数据 要将数据插入分布式表,您可以使用标准 PostgreSQL INSERT 命令.例如,我们从 Github 存档数据集中随机选择两行. INSERT http://www.postgresq ...