喜欢用Java写程序的朋友都知道,我们常用的一种数据结构map中存储的是键值对,我们一般存储的方式是:

map.put(key, value);

而提取相应键的值用的方法是:

map.get(key);

      确实,这些就是map的基本方法,可是,如果我想查看map中所有的元素怎么办?也就是想遍历其中的每个元素。

      下面,我就介绍三种方法遍历map:

说明:我在map中存储的值是CSDN一博主的QQ签名,当我遍历的时候你会看到。


1.map不是集合,所以,map并不存在迭代器,但是,map中的一个方法可以使得map中的键成为一个集合,那么我们就可以利用集合的迭代器进行遍历,方法如下所示:

Set<Integer> s = (Set<Integer>)map.keySet();  Iterator<Integer> it = s.iterator();  int Key;  String value;  while(it.hasNext()) {  Key = it.next();  value = (String)map.get(Key);  System.out.println(Key+":\t"+value);  }  

2.map提供了另一个方法--entryset,使得我们可以获得map中存储的“键值对”集合,我们可以对键值对集合进行操作,进行遍历,方法如下所示:

Set<Entry<Integer, String>> s = map.entrySet();  Iterator<Map.Entry<Integer, String>> it = s.iterator();  Map.Entry<Integer, String> entry;  int Key;  String value;  while(it.hasNext()) {  entry = it.next();  Key = entry.getKey();  value = entry.getValue();  System.out.println(Key+":\t"+value);  }  

3.其实这种方法和第二种方法是一样的,只是我们用了不同的形式实现而已,这里不多说,方法如下:

for(Map.Entry<Integer, String> entry : map.entrySet()){System.out.println(entry.getKey() + ":\t" + entry.getValue());}

下面给出完整的测试代码以及运行后的结果:

package com.brucezhang.test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;public class MapItTest {private static Map<Integer, String> my_map = new HashMap<Integer, String>();private static String[] my_value = {"I love three things", "The sun for the day", "The moon for the night", "The you forever"};/*** @param args* Author:DLUTBruceZhang*/public static void main(String[] args) {// TODO Auto-generated method stub//给 map 赋初值for (int i = 0; i < my_value.length; i++) {my_map.put(i, my_value[i]);}//使用第一种方法进行遍历theFirstItFun(my_map);System.out.println("----------------------------------------");//使用第二种方法进行遍历theSecondItFun(my_map);System.out.println("----------------------------------------");//使用第三种方法进行遍历theThirdItFun(my_map);}public static void theFirstItFun(Map<Integer, String> map) {Set<Integer> s = (Set<Integer>)map.keySet();  Iterator<Integer> it = s.iterator();  int Key;  String value;  while(it.hasNext()) {  Key = it.next();  value = (String)map.get(Key);  System.out.println(Key+":\t"+value);  }  }public static void theSecondItFun(Map<Integer, String> map){Set<Entry<Integer, String>> s = map.entrySet();  Iterator<Map.Entry<Integer, String>> it = s.iterator();  Map.Entry<Integer, String> entry;  int Key;  String value;  while(it.hasNext()) {  entry = it.next();  Key = entry.getKey();  value = entry.getValue();  System.out.println(Key+":\t"+value);  }  }public static void theThirdItFun(Map<Integer, String> map){for(Map.Entry<Integer, String> entry : map.entrySet()){System.out.println(entry.getKey() + ":\t" + entry.getValue());}}}


运行结果如下:

0:   I love three things
1:  The sun for the day
2:  The moon for the night
3:  The you forever
----------------------------------------
0:  I love three things
1:  The sun for the day
2:  The moon for the night
3:  The you forever
----------------------------------------
0:  I love three things
1:  The sun for the day
2:  The moon for the night
3:  The you forever

java中遍历map的几种方法介绍相关推荐

  1. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  2. Java中遍历Map的两种方法:keySet和entrySet

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

  3. java中遍历HashMap的四种方法及效率比较

    1. 推荐方法: 使用entrySet 遍历Map 类集合KV,而不是keySet 方式进行遍历. 代码示例如下: // 循环第二种HashMap<Integer, String> map ...

  4. java foreach 遍历map_java中遍历map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  5. java stream 遍历map_遍历map的五种方法介绍

    日常开发中Map集合遍历是经常使用的,下面介绍几种遍历方法的差异. (推荐教程:java课程) 1.Iterator+entrySet写法[推荐JDK8以下],Map.Entry是Map接口的内部接口 ...

  6. Java中遍历Map的五种方式

    方法一:在for循环中遍历value Map<String, String> map = new HashMap();map.put("开发", "开发&qu ...

  7. Java中 遍历 ArrayList的三种方法

    import java.util.*;public class test {public static void main(String[] args) {List<String> lis ...

  8. Java中遍历数组的三种方法

    方法一:for循环(最常用) 方法二:利用 foreach 方法三:利用jdk自带方法:java.util.Arrays.toString //String类型的i数组 public class St ...

  9. java中遍历map的两种方式

    1.先将map对象转成set,然后再转为迭代器 1 Iterator iterator = map.entrySet().iterator(); 2 while(iterator.hasNext()) ...

最新文章

  1. Sharepoint 2010 新特性笔记
  2. 原创哈希数据导出算法
  3. 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?
  4. 关于ubuntu 是否需要使用std::到问题。
  5. Qt学习笔记-使用QStyleFactory::create()变换风格
  6. oracle sql 导入mysql数据库备份_使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复...
  7. SLAM_SLAM中一般是如何求解相机的运动的?
  8. android投屏到web,安卓投屏神器下载|安卓投屏神器(Web Video Caster)v4.5.4高级版下载 - 99安卓游戏...
  9. 搜集的一些电压跟随器的问题和回答
  10. WPS:添加公式后,行间距变宽的解决方法
  11. 线性代数学习笔记——第六讲——矩阵的转置
  12. Excel中如何将文本链接转成跳转链接
  13. OSI七层与TCP/IP五层网络架构详解
  14. 计算机网络自顶向下方法(第六版) 课后题答案 | 第三章
  15. 产品负责人 VS 产品经理
  16. Star Trek强势来袭 开启元宇宙虚拟与现实的梦幻联动
  17. mysql 月度账单汇总_MySQL按年度、季度、月度、周、日SQL统计查询
  18. Python: 用xlrd读取Excel文件(*.xlsx) 实践才是检验真理的唯一标准!!!
  19. 看新晋数字化宠儿“RPA”,如何助力人力资源业务流程自动化
  20. 《外星人就在月球背面》值得一读

热门文章

  1. ASP.Net MVC如何访问的静态页面
  2. linux grep 正则表达式
  3. GitHub NetFlow
  4. JS中使用EL表达式
  5. Windows 8的圣战
  6. 演进式数据库开发技术的障碍
  7. 跟互联力量学Asp.net MVC3-安装和创建
  8. PostgreSQL 数据访问 offset 的质变 case
  9. Web中的XHRHttpRequest
  10. jQuery基础之(一)jQuery概述