第一种:

  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. Java内存模型(Java Memory Model,JMM)

    今天简单聊聊什么叫做 Java 内存模型,不是 JVM 内存结构哦. JMM 是一个语言级别的内存模型,处理器的硬件模型是硬件级别,Java中的内存模型是内存可见性的基本保证.从而为我们 volati ...

  2. 在 UIViewController 中手动增加 TableView 出现 Type 'SomeViewController' does not confirm to protocol 'UITableViewDataSource' 问题的解决办法

    许多时候我们都有在普通的继承自 UIViewController 的控制器中使用 TableView 的需求,这时候就需要当前控制器类继承 UITableViewDelegate 和 UITableV ...

  3. pytest入门学习(2)

    pytest的hello world pyt1.py def func(x): print (x+1); return x+1; def test_answer(): assert func(3) = ...

  4. AndroidTV开发

    AndroidTV的开发其实和Android的开发是一样的,现在的电视机可以安装AnroidApp

  5. SpringBoot整合Memached

    一.Memached介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站 ...

  6. BZOJ1108(思路)

    题目本质:因为只能往南和往东走所以不管怎么组合方案结果都是一样的Orz……我太菜了想不到嘤嘤嘤 #pragma comment(linker, "/STACK:1024000000,1024 ...

  7. 洛谷 P2376 [USACO09OCT]津贴Allowance

    https://www.luogu.org/problemnew/show/P2376 看了题解做的,根本不会贪心.. #include<cstdio> #include<algor ...

  8. C. Functions again DP + 分类讨论

    http://codeforces.com/contest/789/problem/C 首先按题目要求处理出dis数组. 那么对于任意一个区间,[L, R],是dis[L] - dis[L + 1] ...

  9. 玲珑杯”ACM比赛 Round #4 1054 - String cut 暴力。学到了扫描的另一种思想

    http://www.ifrog.cc/acm/problem/1054 问删除一个字符后的最小循环节是多少. 比赛的时候想不出,不知道怎么暴力. 赛后看了别人代码才晓得.唉,还以为自己字符串还不错, ...

  10. hdu1754I Hate It(splay)

    链接 线段树的水题,拿来学习一下splay. 本题涉及到求最大值以及单点更新,折腾了许久,差不多把splay搞明白了. 按位置建树,按位置是一颗排序二叉树,对于区间的操作非常方便,每次操作都将需要的结 ...