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四种遍历方法
随机推荐
- JS&Jquery中的循环/遍历
JavaScript中的遍历 for 遍历 var anArray = ['one','two']; for(var n = 0; n < anArray.length; n++) { //具体 ...
- awk计算最大值,最小值,平均值的脚本
传入至少三个数字参数到脚本awk_file,并计算出最大,最小,平均值.需要判断传入的数字是否足够,否则输出警告信息.平均值保留两位小数. 如执行bash awk_file 3 4 6 5,脚本输出结 ...
- 【原创】QT 打印输出
list类 qDebug 的两种用法 #include <QDebug> int main(int argc,char *argv[]) { QList<int> list; ...
- python nltk 安装及配置说明
本教程采用pip安装方式,前期需要在本机安装setuptools 及pip 网上铺天盖地的说了很多关于nltk的说明,特别是后期nltk_data 手动下载操作,多数都不好使,这里整理 用pip安装n ...
- Java多线程习题 ===重点 ,错题积累
多线程重点,错题分析 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: . 12: 13: 14: 15:
- 深入理解java虚拟机---对象的创建过程(八)
1.对象的创建过程 由于类的加载是一个很复杂的过程,所以这里暂时略过,后面会详细讲解,默认为是已加载过的类.着重强调对象的创建过程. 注意: 最后一步的init方法是代码块和构造方法. 以上是总图,下 ...
- activemq 生产消费模式,订阅发布模式不同类型数据传输
1.项目结构 2. activemq-pom pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- ios 汽车品牌展示案例
汽车组模型 // ZQRGroup.h #import <Foundation/Foundation.h> @interface ZQRGroup : NSObject /** *组标题 ...
- springmvc跳转到自定义404页面的三种方法
有时候我们并不想跳转到系统自定义的错误页面中,那么我们需要自定义页面并且实现它的跳转 有三种方法可以实现 方法一:最简单的实现,也是最快的 在<web-app>节点下配置 代码如下: &l ...
- 顶部BANNER
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...