第一种:

  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. Matplotlib 如何显示中文

    Python 3.x 主要是如下代码 import os font = FontProperties(fname=os.path.expandvars(r"%windir%\fonts\si ...

  2. jzoj5987. 【WC2019模拟2019.1.4】仙人掌毒题 (树链剖分+概率期望+容斥)

    题面 题解 又一道全场切的题目我连题目都没看懂--细节真多-- 先考虑怎么维护仙人掌.在线可以用LCT,或者像我代码里先离线,并按时间求出一棵最小生成树(或者一个森林),然后树链剖分.如果一条边不是生 ...

  3. PHP实现用户登录注册功能

    初学php做了一些比较常见且有用的页面,放在上面记录一下咯 我是用了bootstrap框架里面的模态框做注册登陆页面,这样页面比较美观 页面效果: 注册成功条件/功能: 1)用户名不能冲突 2)两次密 ...

  4. ZOJ3329(数学推导+期望递推)

    要点: 1.期望的套路,要求n以上的期望,则设dp[i]为i分距离终点的期望步数,则终点dp值为0,答案是dp[0]. 2.此题主要在于数学推导,一方面是要写出dp[i] = 什么,虽然一大串但是思维 ...

  5. 关于 ie8不兼容的一些方法

    ie8 不兼容的方法 $(function(){ //添加数组IndexOf方法 if (!Array.prototype.indexOf){ Array.prototype.indexOf = fu ...

  6. 语义分割丨DeepLab系列总结「v1、v2、v3、v3+」

    花了点时间梳理了一下DeepLab系列的工作,主要关注每篇工作的背景和贡献,理清它们之间的联系,而实验和部分细节并没有过多介绍,请见谅. DeepLabv1 Semantic image segmen ...

  7. Windows科研工具

    本人是计算机专业的在读研究生,平时工作环境主要用win10远程ubuntu,下面推荐一些我用过且觉得不错的应用. 桌面美化 Wallpaper Engine:动态壁纸,很养眼,不过要下stream,花 ...

  8. 系统讲解一下,Dao,Entity,Servlet,Action各自有什么东西-Java/Web开发

    dao 主要是一些接口,里面定义了一些用于增删改查的方法名 daoImpl 就是对dao的具体实现 Service 同上,也是一些接口,主要是用来调用dao层的一些方法,所以这里定义的方法一般都定义好 ...

  9. Django数据库创建与查询及ORM的概念

    ORM:是封装在pymysql上层的文件.他的作用是把python语句转换成sql语句,从而去数据库里操作数据.从数据库里获得的数据,经过orm转换为对象,对象可以直接调用属性获得值.orm本质是个中 ...

  10. hihocoder1860 最大异或和

    思路: 把N个前缀异或和插入一棵trie树中,然后对每个前缀异或和x计算能使x ^ y最大的前缀异或和y.利用了异或运算的a ^ b ^ a = b的性质. 参考了https://cloud.tenc ...