声明:迁移自本人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. Python在运行中发生错误怎么正确处理方法,案例详解!

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  2. 动态弹出框,iframe的name包含一串随机数

    由于name是随机的,要定位name比较困难,此处由于iframe的标签是唯一的,所以可以用tag_name定位 framename=driver.find_element_by_tag_name(& ...

  3. 微信小程序实现左滑删除效果(原生/uni-app)

    实现效果 列表中侧滑删除 删除不同时存在 scrollview上下滑动与侧滑删除不影响 uni-app实现 html部分 <template> <scroll-view :scrol ...

  4. 【测试】性能测试及性能测试工具Loadrunner

    性能测试简介 软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等.这些都是可以衡量一个软件系统性能好坏的指标.而性能测试是指通过自动化测试工具去模拟多种正 ...

  5. 2.15 使用web 编写一个简单记事本

    首先陈列问题  (等待解决): 1. 界面是使用 H5   iframe 标签合并而成的,当窗口化之后点击任务栏,显示的内容会在任务栏的下边 希望可以找其他方式替代 (其他方法不熟练,不能应用) 如图 ...

  6. PHP开发-模板的使用

    通过今天晚上半个多小时的赵老师对模板的介绍,大致对模板的使用.结构以及开发模板的思想有了个大致的了解. 为什么要开发模板:模板就是将PHP发过过程中使用到.需要操作的事物封装成对象.以便在使用到的时候 ...

  7. 043-PHP简单获得一个类对应的反射信息

    <?php // 简单获得一个类对应的反射信息 class demo{ CONST CON_STR = '123456'; public $str_1; private $str_2; prot ...

  8. StackExchange.Redis.DLL 操作redis加强版

    直接引用StackExchange.Redis.dll这一个dll来操作redis App.config配置 <?xml version="1.0" encoding=&qu ...

  9. 字符输出、if判断

    1.这里学习交互性输入 #input  接受的所有数据都是字符串,即使你输入的是数字,但依然会被当成字符串来处理 #type 用来查看变量存入到内存时的属性 #int 将变量强制转化为整型 #str  ...

  10. (转)null和NULL和nullptr和””区别

    突然想到这个有趣的问题:C语言和C++对大小写是敏感的,也就是说null和NULL是区别对待的.NULL代表空地址,null只是一个符号.便来深究,看了很多资料,总结如下: 其实null和NULL都是 ...