Map的6种遍历方法
声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635
探讨有几种遍历Map的方法其实意义并不大,网上的文章一般讲4种或5种的居多,重要的是知道遍历的内涵,从遍历元素的角度来看,分为Key、Value、Map.Entry,从遍历的方法来看,分为foreach、Iterator。即Map可以对Key、Value、Map.Entry分别执行foreach、Iterator遍历,所以总结有2*3=6种遍历方式。
提供实例如下。
源码如下
package com;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class TestMapTraversal
{
public static void main(String[] args)
{
Map<Integer, String> testmap = new HashMap<Integer, String>();
testmap.put(100, "100");
testmap.put(200, "200");
System.out.println("\n------>1");
//方法1:按照key foreach
for (Integer key : testmap.keySet())
{
System.out.println("key=" + key + ", value=" + testmap.get(key));
}
//方法2:按照key iterator
Iterator<Integer> iterable2 = testmap.keySet().iterator();
System.out.println("\n------>2");
int key2;
while(iterable2.hasNext())
{
key2 = iterable2.next();
System.out.println("key=" + key2 + ", value=" + testmap.get(key2));
}
//方法3:按照Map.Entry foreach
System.out.println("\n------>3");
for (Map.Entry<Integer, String> entry : testmap.entrySet())
{
System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());
}
//方法4:按照Map.Entry Iterator
System.out.println("\n------>4");
Iterator iterator4 = testmap.entrySet().iterator();
Map.Entry<Integer, String> entry4;
while(iterator4.hasNext())
{
entry4 = (Map.Entry)iterator4.next();
System.out.println("key=" + entry4.getKey() + ", value=" + entry4.getValue());
}
//方法5:按照value foreach
System.out.println("\n------>5");
for (String value : testmap.values())
{
System.out.println("value=" + value);
}
//方法6:按照value iterator
System.out.println("\n------>6");
Iterator iterator6 = testmap.values().iterator();
String value6;
while(iterator6.hasNext())
{
value6 = (String)iterator6.next();
System.out.println("value=" + value6);
}
}
}
运行结果如下
------>1
key=100, value=100
key=200, value=200
------>2
key=100, value=100
key=200, value=200
------>3
key=100, value=100
key=200, value=200
------>4
key=100, value=100
key=200, value=200
------>5
value=100
value=200
------>6
value=100
value=200
Map的6种遍历方法的更多相关文章
- Java中Map的三种遍历方法
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
- map的三种遍历方法!
map的三种遍历方法! 集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...
- Map的五种遍历方法
package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...
- Map获取键值,Map的几种遍历方法
Map 类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个 getKey()方法和一个getValue()方法,Map ...
- Map 的两种遍历方法详细说明
//方法一 Set<String> set = map.keySet(); for (String s:set) { System.out.println(s+","+ ...
- Map的四种遍历方法
1.取值遍历 for(String key:map.keySet()){ System.out.println("key="+key+"and value=" ...
- Map获取键值,Map的几种遍历方法 (转载)
Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,Map.E ...
- Map的四种遍历
//Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...
- HashMap的四种遍历方法,及效率比较(简单明了)
https://yq.aliyun.com/ziliao/210955 public static void main(String[] args) { HashMap<Integer, Str ...
随机推荐
- 最小生成树的两种方法(Kruskal算法和Prim算法)
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...
- 我的博客 Hexo 还是Jekyll
我的博客 Hexo 还是Jekyll 标签(空格分隔): 博客 很喜欢找一些博客主题,目前发现几个比较不错的 Hexo: 阿里中间件 我的个人博客-Material主题 我的个人博客-Fluid主题 ...
- emacs 配置文件目录
在 windows 环境下,emacs 的配置目录可以通过下面几种方式来设置: If the environment variableHOME is set, use the directory it ...
- writeObiect与序列化反序列化
在写仿QQ聊天工具中,客户端与服务端之间的通信一开始是采用的是InputStream和OutputStream,这导致在数据传输过程中,登录信息,注册信息等难以区分,这时我给传输的数据加了标识来分辨信 ...
- C++ MySQL封装类
#ifndef MYSQL_MANAGER_H #define MYSQL_MANAGER_H #include <Winsock2.h> #include "mysql.h&q ...
- DRF项目之通过业务逻辑选择数据集和序列化器
在REST后台开发中,我们需要通过业务逻辑来选择数据集或者序列化器. 选择数据集: # 重写get_queryset实现通过业务逻辑选择指定数据集 def get_queryset(self): '' ...
- Python MySQL 删除表
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
- 前端第四篇---前端基础之jQuery
前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...
- CV_图像滤波[转]---python+opencv均值滤波,高斯滤波,中值滤波,双边滤波
1.图像滤波算法(cv2) https://blog.csdn.net/qq_27261889/article/details/80822270 2.
- 51nod 算法马拉松3 A:序列分解
序列分解 System Message (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 小刀和大刀是双胞胎兄弟.今天他们玩一个有意思的游戏. 大刀给小刀准备了一个长度为n ...