文档章节

java中map的clear和new性能对比

登琼
 登琼
发布于 2016/02/16 18:28
字数 245
阅读 1798
收藏 0

我再上一篇hashMap使用的优化文章的时候想过map的性能问题,没有仔细探究,今天有想到一个问题。

我们在使用HashMap的时候是用clear好呢,还是直接new一个比较好!

然后就写了点代码进行实验比较

Map<String, Object> map = new HashMap<String, Object>();
		for (int i = 0; i < 100000; i++) {
			map.put(i+"", 1);
		}
		
		long start = System.currentTimeMillis();
		map.clear();
		map.put("headerId", 1);
		for (int i = 0; i < 100000; i++) {
			map.put(i+"", 1);
		}
		long end = System.currentTimeMillis();
		System.out.println("运行时间:" + (end - start) + "毫秒");
		
		long start2 = System.currentTimeMillis();
		map = new HashMap<String, Object>();
		map.put("headerId", 1);
		for (int i = 0; i < 100000; i++) {
			map.put(i+"", 1);
		}
		long end2 = System.currentTimeMillis();
		System.out.println("运行时间:" + (end2 - start2) + "毫秒");

输出结果:

    运行时间:37毫秒

    运行时间:45毫秒

虽然时间差比较小,但事实证明如果后期大数据量的话还是clear效率比较高,如果是小数据量还是new效率高,1w条左右!

© 著作权归作者所有

共有 人打赏支持
登琼
粉丝 3
博文 46
码字总数 8100
作品 0
广州
程序员
加载中

评论(2)

登琼
登琼

引用来自“pangsscn”的评论

这代码明显有问题了....
理论上clear慢些,因为clear是循环元素设置成null,但是在某个数量范围内,clear却花的时间更短,我想可能是在for中map的size多次不满足长度,map扩长运算导致的。
小弟才疏学浅,望大神赐教。
pangsscn
pangsscn
这代码明显有问题了....
ThreadLocal 类 的源码解析以及使用原理

1、原理图说明      首先看这一张图,我们可以看出,每一个Thread类中都存在一个属性 ThreadLocalMap 成员,该成员是一个map数据结构,map中是一个Entry的数组,存在entry实体,该实体包...

小勇DW3
08/13
0
0
Map迭代过程中remove引发的java.util.concurrentmodificationexception

唉,基础还是不过硬,又在博客记录下一个小问题的解决思路。先贴出出错的代码,大家看看哪里会出问题: [java] view plain copy // 定义的一个map常量 private static final Map<AlarmInfo, ...

onedotdot
2017/10/31
0
0
深入JDK源码之ThreadLocal类

学习JDK中的类,首先看下JDK API对此类的描述,描述如下:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程...

陶邦仁
2015/03/26
0
6
JVM client模式和Server模式的区别

这里向大家描述一下JVM client模式和Server模式两者的区别和联系,JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。...

SeanCai
2014/04/12
0
0
Thrift初探:简单实现C#通讯服务程序,收藏

Thrift初探:简单实现C#通讯服务程序 好久没有写文章了,由于换工作了,所以一直没有时间来写博。今天抽个空练练手下~最近接触了下Thrift,网上也有很多文章对于Thrift做了说明: Thrift是一...

漫步沙漠
2012/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
17分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
20分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
22分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
24分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部