当map中包含的Entry的数量大于等于threshold =初始容量*装载因子(默认0.75) 的时候,且新建的Entry刚好落在一个非空的桶上,此刻触发扩容机制,将其容量扩大为2倍.
也就是说如果桶初始大小为100,当Entry节点达到75个,且新建的Entry刚好落在一个非空的桶上就会扩容。那一个桶就挂一个Entry?
HashMap一个桶大约放多少个Entry节点
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 红帽01 2018-03-17 02:51关注
参考一下
http://blog.csdn.net/ghsau/article/details/16890151
HashMap默认初始容量16,加载因子0.75,也就是说最多能放16*0.75=12个元素,当put第13个时,HashMap将发生rehash,rehash的一系列处理比较影响性能,所以当我们需要向HashMap存放较多元素时,最好指定合适的初始容量和加载因子,否则HashMap默认只能存12个元素,将会发生多次rehash操作。
rehash的解释:
在创建hashMAP的时候可以设置来个参数,一般默认
初始化容量:创建hash表时桶的数量
负载因子:负载因子=map的size/初始化容量
当hash表中的负载因子达到负载极限的时候,hash表会自动成倍的增加容量(桶的数量),并将原有的对象
重新的分配并加入新的桶内,这称为rehash。这个过程是十分好性能的,一般不要
一般建议设置比较大的初始化容量,防止rehash,但是也不能设置过大,初始化容量过大 浪费空间解决 3无用
悬赏问题
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?