博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】HashMap遍历方法
阅读量:5895 次
发布时间:2019-06-19

本文共 4421 字,大约阅读时间需要 14 分钟。

网上搜了一下 hashMap 遍历的文章

转来收藏。

 

第一篇

在做周末作业时,发现hashmap的遍历掌握的不是很好,到网上查了下资料,下面是转载的一篇文章,稍加整理了下。

HashMap遍历的两种方式:

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

Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {     Map.Entry entry = (Map.Entry) iter.next();     Object key = entry.getKey();     Object val = entry.getValue(); }

 

第二种:效率低比第一种要低,不推荐使用! 

Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) {     Object key = iter.next();     Object val = map.get(key); }

 

下面是一个实例,通过运行的毫秒数可以看出两种方法遍历速度的快慢

public class HashMapTest {   public static void main(String[] args) {     HashMap hashmap = new HashMap();     for (int i = 0; i < 1000; i++ ){       hashmap.put(i, "thanks");     }     long bs = Calendar.getInstance().getTimeInMillis();     Iterator iterator = hashmap.keySet().iterator();       while (iterator.hasNext()){          System.out.print(hashmap.get(iterator.next()));     }        System.out.println();     System.out.println(Calendar.getInstance().getTimeInMillis() - bs);      listHashMap();  }           public static void listHashMap(){     java.util.HashMap hashmap = new java.util.HashMap();     for (int i = 0; i < 1000; i++ ){       hashmap.put(i, "thanks");     }     long bs = Calendar.getInstance().getTimeInMillis();       java.util.Iterator it = hashmap.entrySet().iterator();     while (it.hasNext()){     java.util.Map.Entry entry = (java.util.Map.Entry) it.next();       // entry.getKey() 返回与此项对应的键       // entry.getValue() 返回与此项对应的值       System.out.print(entry.getValue());     }     System.out.println();     System.out.println(Calendar.getInstance().getTimeInMillis() - bs);   } }

 

对于keySet其实是遍历了2次,一次是转为iterator,一次就是从hashmap中取出key所对于的value。而entryset只是遍历 了第一次,他把key和value都放到了entry中,所以快了。

我验证了一下,两种遍历的遍历时间相差还是很明显的,有兴趣的同学可以直接把代码粘过去试下,另外运用时间来比较程序运行效率的方法也很值得学习,也很简单。

 

第二篇

import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set;  //循环遍历map的方法 public class CircleMap {   public static void main(String[] args) {    Map
tempMap = new HashMap
();     tempMap.put("a", 1);     tempMap.put("b", 2);     tempMap.put("c", 3);     // JDK1.4中     // 遍历方法一 hashmap entrySet() 遍历     System.out.println("方法一");     Iterator it = tempMap.entrySet().iterator();     while (it.hasNext()) {       Map.Entry entry = (Map.Entry) it.next();       Object key = entry.getKey();       Object value = entry.getValue();       System.out.println("key=" + key + " value=" + value);     }     System.out.println("");     // JDK1.5中,应用新特性For-Each循环     // 遍历方法二     System.out.println("方法二");     for (Map.Entry
entry : tempMap.entrySet()) {       String key = entry.getKey().toString();       String value = entry.getValue().toString();       System.out.println("key=" + key + " value=" + value);     }     System.out.println("");     // 遍历方法三 hashmap keySet() 遍历     System.out.println("方法三");     for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {       Object obj = i.next();       System.out.println(obj);// 循环输出key       System.out.println("key=" + obj + " value=" + tempMap.get(obj));     }     for (Iterator i = tempMap.values().iterator(); i.hasNext();) {       Object obj = i.next();       System.out.println(obj);// 循环输出value     }     System.out.println("");     // 遍历方法四 treemap keySet()遍历    System.out.println("方法四");     for (Object o : tempMap.keySet()) {       System.out.println("key=" + o + " value=" + tempMap.get(o));     }     System.out.println("11111");     // java如何遍历Map
map = new HashMap
();     System.out.println("java 遍历Map
map = new HashMap
();");     Map
map = new HashMap
();     Set
keys = map.keySet();     Iterator
iterator = keys.iterator();     while (iterator.hasNext()) {       String key = iterator.next();       ArrayList arrayList = map.get(key);       for (Object o : arrayList) {         System.out.println(o + "遍历过程");       }     }     System.out.println("2222");     Map
mapList = new HashMap
();     for (Map.Entry entry : mapList.entrySet()) {       String key = entry.getKey().toString();       List
values = (List) entry.getValue();       for (String value : values) {       System.out.println(key + " --> " + value);     }   } }

 

 

转载于:https://www.cnblogs.com/szfei/archive/2012/08/08/2628208.html

你可能感兴趣的文章
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>
学习进度表 04
查看>>
谈谈javascript中的prototype与继承
查看>>
时序约束优先级_Vivado工程经验与各种时序约束技巧分享
查看>>
minio 并发数_MinIO 参数解析与限制
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
python类 del_全面了解Python类的内置方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
mysql client命令行选项
查看>>
配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
查看>>
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
JavaScript---事件
查看>>
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>
将HTML特殊转义为实体字符的两种实现方式
查看>>
System.Func<>与System.Action<>
查看>>