zoukankan      html  css  js  c++  java
  • 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 性能比较 ,以便于您获取更多的相关知识。

  • 相关阅读:
    uNFS搭建
    nodejs+koa 后台框架结构、demo学习地址
    Apache 基本配置 代理 重定向 跨域 https ssl证书 在windows下常用命令
    新版 Mediasoup Windows 安装 编译
    腾讯云服务器,在本地域名不能访问,IP可以访问;端口访问差异:有的地方能访问有的不能
    nodejs 程序打包 打包 koa express 项目 源代码保护加密
    windows 设置修改本地 hosts 访问 github 快速访问 提高访问 github 速度
    Flutter开发 备用网站地址
    redis in windows
    CRLF和LF的差异
  • 原文地址:https://www.cnblogs.com/hahajava/p/10210892.html
Copyright © 2011-2022 走看看