第一种:

  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. HDOJ2579,BFS(三维数组标记)

    三维数组对于我这个萌萌的新手来说真是酷酷的,帅到不行,,, 三维数组前面还看到空间的哪一题HDOJ1240,这一题时间上的标记,更酷了!!! 不说废话了,贴一发代码: #include <std ...

  2. 端口渗透·网站渗透过程 --21 ,22,873,3306,6379,8080(8080端口是针对CMS的渗透)

    声明:文章渗透网站为模拟环境,文章只为利用过程 文章为信息收集和端口渗透两部分,21端口为ftp版本漏洞 8080端口为CMS的渗透 信息收集: ·使用扫描工具nmap ,PortScan 对整个网段 ...

  3. assembly x86(nasm)的日常

    cs的日常打卡. data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;43,35 sun1 db 'SUN' swc ...

  4. JAVA实训总结 :String

    String是特殊的类,与其他基本类型并不相同,是被java封装的类型 String底层组成对象为数组与字典(字符集编码表) String 类型的字符串是存储在JVM特别开辟的字符串常量池中   创建 ...

  5. random 库

    random 是使用随机数的python 标准库 ——为随机数:采用梅森旋转算法生成的(伪)随机序列中的元素 —— import random 基本随机数函数:seed(),random() 扩展随机 ...

  6. 利用arguments对象在javaScript中实现重载(overload)

    一些概念: 重载(overload): 什么是: 相同函数名,不同参数列表的多个函数,在调用时,可根据传入参数的不同,自动选择对应的函数调用! 为什么: 减轻调用者的负担,一个函数名,可执行多种操作 ...

  7. 使用CSS 实现菱形图片,斜条纹背景

    比较简单的菱形图片: 效果如下 代码部分: <div class="d1"> <img src="img/5.jpg"> </di ...

  8. qq登录,新浪微博登录 ,接口开发

    给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了js api和php api相结合的方式来做的.个人觉得这种方式,兼顾安全和人性化.以前写过一篇关于申请的博 ...

  9. Redis 数据导入导出,redis-dump命令

    安装redis-dump 工具 yum install ruby rubygems ruby-devel# 修改为国内源gem sources --add http://gems.ruby-china ...

  10. #82. 【UR #7】水题生成器

    链接:http://uoj.ac/problem/82 今天是世界水日,著名的水题资源专家蝈蝈大臣向世界宣布了他的一项新发明 —— 水题生成器. 每道题目都有一个正整数的难度值.水题生成器虽然强大但是 ...