第一种:

  1. Map map = new HashMap();
  2. Iterator iter = map.entrySet().iterator();
  3. while (iter.hasNext()) {
  4. Map.Entry entry = (Map.Entry) iter.next();
  5. Object key = entry.getKey();
  6. Object val = entry.getValue();
  7. }

效率高,推荐使用此种方式!

第二种:

  1. Map map = new HashMap();
  2. Iterator iter = map.keySet().iterator();
  3. while (iter.hasNext()) {
  4. Object key = iter.next();
  5. Object val = map.get(key);
  6. }

效率低,以后尽量少使用!

JDK1.5中,应用新特性For-Each循环

  1. Map map = new HashMap();
  2. for(Object o : map.keySet()){
  3. map.get(o);
  4. }

返回的 set 中的每个元素都是一个 Map.Entry 类型。

  1. private Hashtable<String, String> emails = new Hashtable<String, String>();
  2. //方法一: 用entrySet()
  3. Iterator it = emails.entrySet().iterator();
  4. while(it.hasNext()){
  5. Map.Entry m=(Map.Entry)it.next();
  6. logger.info("email-" + m.getKey() + ":" + m.getValue());
  7. }
  8. // 方法二:jdk1.5支持,用entrySet()和For-Each循环()
  9. for (Map.Entry<String, String> m : emails.entrySet()) {
  10. logger.info("email-" + m.getKey() + ":" + m.getValue());
  11. }
  12. // 方法三:用keySet()
  13. Iterator it = emails.keySet().iterator();
  14. while (it.hasNext()){
  15. String key;
  16. key=(String)it.next();
  17. logger.info("email-" + key + ":" + emails.get(key));
  18. }
  19. // 方法五:jdk1.5支持,用keySEt()和For-Each循环
  20. for(Object m: emails.keySet()){
  21. logger.info("email-" + m+ ":" + emails.get(m));
  22. }

 

另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象

  1. Map    aa    =    new    HashMap();
  2. aa.put("tmp1",    new    Object());      //追加      替换用同样的函数.
  3. aa.remove("temp1");                        //删除
  4. for    (Iterator    i    =    aa.values().iterator();    i.hasNext();    )
  5. {
  6. Object    temp    =    i.next();
  7. }

 

来个完整的,包含TreeSet的元素内部排序的

  1. public static void main(String[] args) {
  2. ArrayList<String> list = new ArrayList<String>();
  3. HashMap<Object,Object> hash = new HashMap<Object,Object>();
  4. TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>();
  5. list.add("a");
  6. list.add("b");
  7. list.add("c");
  8. hash.put(3, 3);
  9. hash.put(4, 4);
  10. hash.put(5, 5);
  11. hash.put(6, 6);
  12. hash.put(1, 1);
  13. hash.put(2, 2);
  14. treeMap.put(1, 1);
  15. treeMap.put(2, 2);
  16. treeMap.put(3, 3);
  17. treeMap.put(4, 4);
  18. treeMap.put(5, 5);
  19. treeMap.put(6, 6);
  20. //list遍历
  21. for(String m: list){
  22. System.out.println(m);
  23. }
  24. // hashmap entrySet() 遍历
  25. for(Map.Entry<Object,Object> m: hash.entrySet()){
  26. System.out.println(m.getKey()+"---"+m.getValue());
  27. }
  28. //hashmap keySet() 遍历
  29. for(Object m: hash.keySet()){
  30. System.out.println(m+"---"+hash.get(m));
  31. }
  32. // treemap keySet()遍历
  33. for(Object m: treeMap.keySet()){
  34. System.out.println(m+"---"+treeMap.get(m));
  35. }
  36. }

JAVA遍历map元素的更多相关文章

  1. java 遍历map 方法 集合 五种的方法

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

  2. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  3. Java遍历Map键、值。获取Map大小的方法

    Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashM ...

  4. java 遍历map的方法

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

  5. Java遍历Map的4种方式

    public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashM ...

  6. [转载] Java 遍历 Map 的 5 种方式

    目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...

  7. java遍历map的四种方式

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  8. Java遍历Map的3种方式

    package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...

  9. java遍历map方法

    java 代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Map ...

随机推荐

  1. Lightoj1011【KM算法】

    题意: 问男孩女孩最大的可能值?其实就是一个二分图的最大权值匹配问题:模板题吧.. #include<cstdio> #include<math.h> #include< ...

  2. numpy windows环境下载安装

    由于numpy在多个平台下非常流行,以至于习惯WINDOWS环境下的用户可能找不到下载位置,更多的时候会下载到zip文件,然后需要安装编译(自然通不过) 1.http://www.scipy.org/ ...

  3. bzoj 4464: [Jsoi2013]旅行时的困惑【贪心】

    据说正解是有上下界最小流,但是这种1e5的玩意问什么要跑网络流啊-- 贪心即可,注意一点是可以有多条路径经过一条边-- 以1为根,设d[u][0/1]为u到父亲的边是向下/向上,g记录这个点儿子中不能 ...

  4. 2012 Noip提高组 Day1

    1262. [NOIP2012] Vigenère 密码 ★   输入文件:vigenere.in   输出文件:vigenere.out   简单对比时间限制:1 s   内存限制:128 MB [ ...

  5. 2014-10-23 NOIP模拟赛

    NOIP2014模拟赛 -----lwher 时限均为1s,内存 256MB 1.Jams倒酒(pour) Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为 ...

  6. Spring Cloud:使用Ribbon实现负载均衡详解(下)

    在上一篇文章(Spring Cloud:使用Ribbon实现负载均衡详解(上))中,我对 Ribbon 做了一个介绍,Ribbon 可以实现直接通过服务名称对服务进行访问.这一篇文章我详细分析一下如何 ...

  7. 图片美化增强AI接口调用手册

    在调合合AI平台提供的图片美化增强API接口,API平台链接:https://ai.ccint.com/doc/api/crop_enhance_image, 因为有遇到一些问题,写篇博客记录一下 A ...

  8. 转 载python数据分析(1)-numpy产生随机数

    转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...

  9. ORA-00972_标识符过长

    执行SQL查询报:"ORA-00972:标识符过长"错误. 执行SQL: SELECT T.F_FTBS, T.F_TZMC "X组/XXXX/XXXX名称", ...

  10. String的小笔记

    String类的对象是不可变的! 在使用String类的时候要始终记着这个观念.一旦创建了String对象,它就不会改变. String类中也有可以改变String中字符串的方法,但只要是涉及改变的方 ...