博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
new Hashmap 和 new ArrayList时设置初始化容量多少合适
阅读量:3945 次
发布时间:2019-05-24

本文共 395 字,大约阅读时间需要 1 分钟。

首先需要说明 hashmap的长度n必须是2的幂次

取余(%)操作中如果除数是2的幂次则等价于与其除数减一的与(&)操作

hash % length = hash & (length - 1)

&比%速度更快

我们在使用集合时,例如HashMap时,默认初始容量为16,加载因子0.75,2倍扩容,如何设置初始容量呢?

对于HashMap,如果预知存储为n个,则 n/0.75向上取整为m(此处默认加载因子是0.75),则初始容量设为大于m的最小的2的幂次方的数(其实底层默认就是2的幂次方),较少resize带来的消耗。

总结: n/0.75向上取整为m,然后初始容量设置为大于m的最小的2的幂次方的那个数,如果不知道就不设置

关于ArrayList,默认初始容量10,1.5倍扩容,没有加载因子的说话,所以初始容量设置为n就行,其中ArrayList扩容是通过数组的复制完成,消耗更大。

转载地址:http://vuowi.baihongyu.com/

你可能感兴趣的文章
Google's BigTable 原理 (翻译)
查看>>
MapReduce:超大机群上的简单数据处理
查看>>
设计模式笔记(转载)
查看>>
加站点加入IE的可信站点做法
查看>>
软件研发中的《破窗理论》
查看>>
敏捷的三种误区和五种改进
查看>>
用数字来看某知名B2C网站的发展内幕和隐私
查看>>
vs2010一些设置
查看>>
生活感悟语录
查看>>
用python中htmlParser实现的spider(python spider)
查看>>
在线测速网址
查看>>
mysql中GROUP_CONCAT的应用
查看>>
研发人员的绩效考核
查看>>
Python 3 之多线程研究
查看>>
Python 3中的多线程文件下载类
查看>>
Python库之MySQLdb介绍
查看>>
Python3中利用Urllib进行表单数据提交(Get,Post)
查看>>
Python开发之扩展库的安装指南及Suds(Webservice)的使用简介
查看>>
软件项目管理一点分享
查看>>
iphone程序打包ipa格式
查看>>