HashMap的四种遍历方法,及效率比较(简单明了)
https://yq.aliyun.com/ziliao/210955
public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        for (int i = 0; i < 40000; i++) {
            map.put(i, "第" + i + "个");
        }
        //循环第一种
        long t1 = System.nanoTime();
        Object key[] = map.keySet().toArray();
        for (int i = 0; i < map.size(); i++) {
            map.get(key[i]);
        }
        long t2 = System.nanoTime();
        // 循环第二种
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            entry.getValue();
        }
        long t3 = System.nanoTime();
        // 循环第三种
        Iterator<Integer> it = map.keySet().iterator();
        while (it.hasNext()) {
            Integer ii = (Integer) it.next();
            map.get(ii);
        }
        long t4 = System.nanoTime();
        // 循环第四种
        for (Integer kk : map.keySet()) {
            map.get(kk);
        }
        long t5 = System.nanoTime();
        System.out.println("第一种方法耗时:" + (t2 - t1) / 1000 + "微秒");
        System.out.println("第二种方法耗时:" + (t3 - t2) / 1000 + "微秒");
        System.out.println("第三种方法耗时:" + (t4 - t3) / 1000 + "微秒");
        System.out.println("第四种方法耗时:" + (t5 - t4) / 1000 + "微秒");
    }
输出结果:
第一种方法耗时:101918微秒
第二种方法耗时:49042微秒
第三种方法耗时:82706微秒
第四种方法耗时:75093微秒
把上述的1000000改成10,输出结果如下:
第一种方法耗时:806微秒
第二种方法耗时:453微秒
第三种方法耗时:19微秒
第四种方法耗时:17微秒
改为100:
第一种方法耗时:909微秒
第二种方法耗时:631微秒
第三种方法耗时:154微秒
第四种方法耗时:141微秒
经测试,第三种方法和第四种方法耗时基本差不多,当数据上万时,第二种方法的效率更高。
以上是HashMap的四种遍历方法,及效率比较的全部内容,在云栖社区的博客、问答、云栖号、人物、课程等栏目也有HashMap的四种遍历方法,及效率比较的相关内容,欢迎继续使用右上角搜索按钮进行搜索java , 遍历 , hashmap 性能比较 ,以便于您获取更多的相关知识。
HashMap的四种遍历方法,及效率比较(简单明了)的更多相关文章
- HashMap的四种遍历!
		HashMap的四种遍历 import java.util.Collection; import java.util.HashMap; import java.util.Map; import jav ... 
- HashMap有几种遍历方法?推荐使用哪种?
		本文已收录<面试精选>系列,Gitee 开源地址:https://gitee.com/mydb/interview HashMap 的遍历方法有很多种,不同的 JDK 版本有不同的写法,其 ... 
- java 完全二叉树的构建与四种遍历方法
		本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1 2 4 5 3 6 7 中序遍历结果应该为:4 2 5 ... 
- java Map 四种遍历方法
		public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ... 
- Hashtable类中的四种遍历方法对比
		要遍历一个Hashtable,api中提供了如下几个方法可供我们遍历: keys() - returns an Enumeration of the keys of this Hashtable ke ... 
- Map的四种遍历方法
		1.取值遍历 for(String key:map.keySet()){ System.out.println("key="+key+"and value=" ... 
- arrayLiist的四种遍历方法
		package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ... 
- HashMap的四种遍历方式
		package com.xt.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impor ... 
- NSArray四种遍历方法
随机推荐
- linux-安装jdk以及tomcat
			1.安装jdk 下载地址:www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html 将jdk下 ... 
- c# 十进制转二、八、十六进制
			一.十进制转二.八.十.十六进制字符串 Convert.ToString(int decNum,int toBase); decNum为十进制字符串, toBase可以为2.8.10.16 如果要转换 ... 
- 1014 2018 使用FLAG counter
			AmazingCounters.com 不能用了,服务器访问不了了,之前的博客浏览量也看不到了,1014号换了个新的--FLAG counter,就是博客右边那个. 
- 关于jvm钩子 Runtime.getRuntime().addShutdownHook
			转自: http://www.cnblogs.com/nexiyi/p/java_add_ShutdownHook.html 在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候 ... 
- Office 365 - For security reasons DTD is prohibited in this XML document
			博客地址:http://blog.csdn.net/FoxDave 今天在测试东西的时候发现在本机运行CSOM代码或使用Office 365 PowerShell时,出现了如下错误: Connec ... 
- 秦皇岛CCPC的失败总结
			个人状态原因:尤其是我,在比赛前没有很好的做准备,还一直看小说,前两天我们本来应该好好打两场训练赛的时候却没有打,然后一直在玩手机,比赛前一天,我下午就不小心睡着了,然后晚上醒来睡不着第二天的精神状态 ... 
- <Web Crawler><Java><thread-safe queue>
			Basic Solution The simplest way is to build a web crawler that runs on a single machine with single ... 
- 『翻译』Access USB Devices on the Web
			https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web Access USB Devices o ... 
- php ,session 详解.
			session是根据php.ini中的配置, 存储在 服务器端 ; 生成的sessionId ,也是根据 php.ini 的配置 存储在 客户端cookie中. session的设置: 存储方式:se ... 
- 如何给cbv的程序添加装饰器
			引入method_decorator模块 1,直接在类上加装饰器 @method_decorator(test,name=‘dispatch’) class Loginview(view) 2,直接在 ... 
