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的四种遍历方法,及效率比较(简单明了)的更多相关文章

  1. HashMap的四种遍历!

    HashMap的四种遍历 import java.util.Collection; import java.util.HashMap; import java.util.Map; import jav ...

  2. HashMap有几种遍历方法?推荐使用哪种?

    本文已收录<面试精选>系列,Gitee 开源地址:https://gitee.com/mydb/interview HashMap 的遍历方法有很多种,不同的 JDK 版本有不同的写法,其 ...

  3. java 完全二叉树的构建与四种遍历方法

    本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1  2  4  5  3  6  7 中序遍历结果应该为:4  2  5 ...

  4. java Map 四种遍历方法

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

  5. Hashtable类中的四种遍历方法对比

    要遍历一个Hashtable,api中提供了如下几个方法可供我们遍历: keys() - returns an Enumeration of the keys of this Hashtable ke ...

  6. Map的四种遍历方法

    1.取值遍历 for(String key:map.keySet()){ System.out.println("key="+key+"and value=" ...

  7. arrayLiist的四种遍历方法

    package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...

  8. HashMap的四种遍历方式

    package com.xt.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impor ...

  9. NSArray四种遍历方法

随机推荐

  1. nginx:负载均衡实战(四)nginx+keepalived配置双机热备

    1.下载安装 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-.tar.gz 安装o ...

  2. npm login npm publish报错

    . 把那个文件删除就好了 查看npm是淘宝的还是原始的 npm config get registry 如果是淘宝的要退回到原始的 npm config set registry=http://reg ...

  3. Dom操作注意事项

    Dom操作注意事项 基本概念: 在 HTML DOM (文档对象模型)中,每个部分都是节点: 文档本身是文档节点 所有 HTML 元素是元素节点 所有 HTML 属性是属性节点 HTML 元素内的文本 ...

  4. 深入理解java虚拟机---垃圾回收(十一)

    1.垃圾回收要解决的问题 可以通过配置虚拟机参数来打印出内存日志: -verbose:gc -XX:+PrintGCDetails 垃圾收集(Garbage Collection,GC),要设计一个G ...

  5. 在linux执行kettle

    1.下载 最新版下载 7.1 https://community.hitachivantara.com/docs/DOC-1009855 2.准备 3.上传任务文件 .kjb,.ktr 4.上传mys ...

  6. shiro学习笔记(四) ini配置以及加解密

    INI配置 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真个应用只需要一个即可,因此Sh ...

  7. Appium 自带的定位工具 Inspector

    前言:Appium Inspector是appium自带的一个元素定位工具 一.设置appium 1.点开android setting界面(机器人图标) 2.勾选Application Path,添 ...

  8. python-django的生命周期

    wsgi,请求封装后交给web框架(flask,django) 中间件,对请求进行校验或在请求对象中添加其他相关数据,列如(scrf[跨域],request,session) 路由匹配,根据浏览器发送 ...

  9. 利用python库计算person相关系数

    使用numpy库,可以实现person相关系数的计算,例如对于矩阵a. a Out[235]: array([[1, 1, 2, 2, 3], [2, 2, 3, 3, 5], [1, 4, 2, 2 ...

  10. 复习回顾(String,StringBuffer,Arrays方法总结)

    String: String类的对象是一经创建就无法变动内容的字符串常量,创建String类的对象可以使用直接赋值和利用构造方法赋值 String str=“hello”;  String str=n ...