声明:迁移自本人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种遍历方法的更多相关文章

  1. Java中Map的三种遍历方法

    Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历.   告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...

  2. map的三种遍历方法!

    map的三种遍历方法!   集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...

  3. Map的五种遍历方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  4. Map获取键值,Map的几种遍历方法

    Map 类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个 getKey()方法和一个getValue()方法,Map ...

  5. Map 的两种遍历方法详细说明

    //方法一 Set<String> set = map.keySet(); for (String s:set) { System.out.println(s+","+ ...

  6. Map的四种遍历方法

    1.取值遍历 for(String key:map.keySet()){ System.out.println("key="+key+"and value=" ...

  7. Map获取键值,Map的几种遍历方法 (转载)

    Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,Map.E ...

  8. Map的四种遍历

    //Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...

  9. HashMap的四种遍历方法,及效率比较(简单明了)

    https://yq.aliyun.com/ziliao/210955 public static void main(String[] args) { HashMap<Integer, Str ...

随机推荐

  1. 最小生成树的两种方法(Kruskal算法和Prim算法)

    关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...

  2. 我的博客 Hexo 还是Jekyll

    我的博客 Hexo 还是Jekyll 标签(空格分隔): 博客 很喜欢找一些博客主题,目前发现几个比较不错的 Hexo: 阿里中间件 我的个人博客-Material主题 我的个人博客-Fluid主题 ...

  3. emacs 配置文件目录

    在 windows 环境下,emacs 的配置目录可以通过下面几种方式来设置: If the environment variableHOME is set, use the directory it ...

  4. writeObiect与序列化反序列化

    在写仿QQ聊天工具中,客户端与服务端之间的通信一开始是采用的是InputStream和OutputStream,这导致在数据传输过程中,登录信息,注册信息等难以区分,这时我给传输的数据加了标识来分辨信 ...

  5. C++ MySQL封装类

    #ifndef MYSQL_MANAGER_H #define MYSQL_MANAGER_H #include <Winsock2.h> #include "mysql.h&q ...

  6. DRF项目之通过业务逻辑选择数据集和序列化器

    在REST后台开发中,我们需要通过业务逻辑来选择数据集或者序列化器. 选择数据集: # 重写get_queryset实现通过业务逻辑选择指定数据集 def get_queryset(self): '' ...

  7. Python MySQL 删除表

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  8. 前端第四篇---前端基础之jQuery

    前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...

  9. CV_图像滤波[转]---python+opencv均值滤波,高斯滤波,中值滤波,双边滤波

    1.图像滤波算法(cv2) https://blog.csdn.net/qq_27261889/article/details/80822270 2.

  10. 51nod 算法马拉松3 A:序列分解

    序列分解 System Message (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 小刀和大刀是双胞胎兄弟.今天他们玩一个有意思的游戏. 大刀给小刀准备了一个长度为n ...