HashMap概念

HashMap中定义的成员变量:

其中:

size:记录了Map中KV对的个数

loadFactor:负载因子系数,用来衡量HashMap满的程度,默认为0.75f

capacity:容量,默认容量是16

threshold:临界值,当实现KV个数超过时,HashMap会将其扩容,threshole=容量*加载因子

size和capacity的区别:

HashMap像一个"桶",capacity就是这个桶当前最多可以装多少元素,size表示这个桶已经装了多少元素

HashMap在初始化时默认他的容量是16,用户可以通过重载构造函数来改变他的默认容量,如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择大于该数字的第一个2的幂作为容量.(1->2,7->8,9->16)

HashMap是有扩容机制的,扩容条件就是当HashMap中的元素个数size超过临界值threshold时就会自动扩容

threshole=容量*加载因子

loadFactor装载因子,表示HashMap满的程序,默认0.75f,好处在于0.75即3/4,而capacity是2的幂所以两个数的乘积都是整数

对于HashMap来说,默认情况下,当其size大于12(0.75*16)时就会触发扩容到32(16*2)

来源:微信公众号Hollis,非常感谢!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值