第一种:

  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. KM算法萌新讲解篇

    KM算法   首先了解问题:也就是最大权值匹配: 二分图里,边带了权值,求整幅图里匹配最大/最小的权值 因为接触匈牙利算法的时候看的是找对象系列的博文,所以也自己写一发找对象的博文吧: 算法背景: 信 ...

  2. Ogre 中使用OIS的两种模式

    关于OIS的输入 要开始考虑游戏输入的问题了,以及开始加入CEGUI也要考虑加入输入的问题.先把OIS的输入简单回忆一下. OIS有两种输入模式:非缓冲输入以及缓冲输入. 无论用哪种输入方式,都应该有 ...

  3. Codevs 1312 连续自然数和

    1312 连续自然数和 题目描述 Description 对于一个自然数M,求出所有的连续的自然数段,使得这些连续自然数段的全部数字和为M.eg:1998+1999+2000+2001+2002=10 ...

  4. Window 10 Alt Tap 切换窗口,设置成Windows 7风格

    升级了Windows 10 以后,切换窗口非常的难受.新版的窗口切换的图标变成了窗口预览了,这总让我一瞬间找不到要去的窗口,所以我打算切换成Windows 7 的小图标风格. Windows + R ...

  5. autoResizing autoLayout和sizeClass

    原文网址: http://www.cnblogs.com/cxbblog/p/4166876.html 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iO ...

  6. F - Balanced Number

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> ...

  7. Linux (二)

    PS :显示系统进程 -a :显示所有进程(包括其他用户的进程) -u :用户以及其他详细信息 -x :显示没有控制终端的进程 -ef :显示所有 top :用于动态地监视进程活动与系统负载的信息 p ...

  8. springmvc写了方法无法访问

    1.检查是否添加了@controller注解 2.在springmvc.xml里添加controller注解扫描 3.在applicationContext.xml里添加service扫描,给mapp ...

  9. CodeSmith Generator 7.0.2

    [工具]CodeSmith Generator 7.0.2激活步骤 只看楼主 收藏 回复     M炎骫毒逆天T   c#攻城狮 8   学过三层的人应该认识CodeSmith Generator吧, ...

  10. vue2.0:(一)、vue的安装和项目搭建(以外卖app项目举例)

    vue系列踩坑大作战由此就要开始了,准备好了吗,和我一起踩坑,学会vue吧.同时,也欢迎大家把自己遇到的坑发出来,让更多的人学会vue,因为我深知前端学习新框架不容易,尤其是我这种半路出家的女前端.不 ...