文档章节

java中map的clear和new性能对比

登琼
 登琼
发布于 2016/02/16 18:28
字数 245
阅读 3.8K
收藏 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
博文 47
码字总数 8538
作品 0
广州
程序员
私信 提问
加载中

评论(2)

登琼
登琼 博主

引用来自“pangsscn”的评论

这代码明显有问题了....
理论上clear慢些,因为clear是循环元素设置成null,但是在某个数量范围内,clear却花的时间更短,我想可能是在for中map的size多次不满足长度,map扩长运算导致的。
小弟才疏学浅,望大神赐教。
pangsscn
pangsscn
这代码明显有问题了....
Java核心(四)你不知道的数据集合

导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧! Java中的集合通常指的是Collection下的三个集合框架List、Set、Q...

王磊的博客
2018/11/28
169
0
java 遍历Map的4种方法

在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。 既然java中的所有map都实现了Map接口,以下方法适用于任何m...

PointNet
2017/08/19
0
0
【算法】Java-Redis-Hash算法对比-参考资料

Java-Redis-Hash算法对比-参考资料 redis java map 红黑树百度搜索 java使用redis缓存(String,bean,list,map) - CSDN博客 redis Jedis序列化自定义存储list对象和map数据 - - ITeye博客 江...

osc_qvqynsub
2018/01/11
6
0
Python3中列表、字典、元组、集合的看法

文首,我先强调一下我是一个弱鸡码农,这个随笔是在我学习完Python3中的元组、字典、列表,集合这四种常见数据的数据类型的一些感想,如果有什么不对的地方欢迎大家予以指正。谢谢大家啦 回归...

osc_llb6wh8u
2018/06/27
1
0
Google Protocol Buffer 简单介绍

以下内容主要整理自官方文档。 为什么使用 Protocol Buffers .proto文件 Protocol Buffers 语法 编译.proto文件 Protocol Buffers API 枚举和嵌套类 Builders vs. Messages 解析和序列化 Wr...

zhanjindong
2015/03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

智慧城市交通的要素:路口监管可视化系统的解决方案

前言 随着信息时代的发展变迁,荧幕里呈现的 智慧城市慢慢出现了在现实生活中,很大程度上便利了日常的管理和维护。在智慧城市的大背景下, 智慧交通监管可视化系统是其重要的组成部分,通过...

osc_b8epmas9
59分钟前
19
0
CPU上下文切换以及相关指标的理解

前言 上下文切换这个词一直不理解,看了无数遍就忘了无数遍,知道看到《操作系统导论》这本书,终于有了略微的理解。这也证明了我的方向是没错的,一直认为做运维还是得理解底层的知识,不理...

osc_n1x6m26g
今天
23
0
记一次 React Native 大版本升级过程——从0.40到0.59

去年把公司几个react native 相关的项目升级了下,已经过去一段时间了,这里系统整理下之前的整个过程。 背景 之前到公司的时候发现公司用的还是0.40的版本,据了解,当时项目做的比较早,导...

osc_j34n26zn
今天
13
0
谈谈压测

背景 随着业务不断发展,用户量不断增加,系统负载越来越高。为了解决系统负载问题,我们是不是直接大量增加机器就可以了? 同时,公司业务开展需要,可能需要开展各种营销活动,目前系统是否...

osc_cudh2wh2
今天
19
0
scipy.sparse的一些整理

一、scipy.sparse中七种稀疏矩阵类型 1、bsr_matrix:分块压缩稀疏行格式 介绍   BSR矩阵中的inptr列表的第i个元素与i+1个元素是储存第i行的数据的列索引以及数据的区间索引,即indices[i...

osc_auwur47t
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部