JDK 8中HashMap底层实现原理相较于JDK7中的变化

  1. new hashMap():new的时候底层没有创建一个长度为16的数组
  2. JDK 8中底层的数组是Node[]类型的数组而非Entry[]类型
  3. 首次使用put()方法时底层创建长度为16的Node[]数组
  4. JDK7底层结构只有数组+链表,JDK8中的底层结构为数组+链表+红黑树;当数组中的某一个索引位置上的元素以链表形式存在的数据个数大于8且当前数组长度超过64时,此索引位置上的所有数据改为使用红黑树存储。

DEFAULT_INITIAL_CAPACITY:HashMap的默认容量,16
DEFAULT_LOAD_FACTOR:HashMap默认加载因子,0.75
threshold:扩容的临界值,容量 * 加载因子 = 12
TREETFY_THRESHOLD:Bucket中链表长于该默认值,转化为红黑树:8MIN_TREETFY_CAPACITY:桶中Node被树化时最小的hash表容量:64

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值