HashMap分析

本文详细剖析了HashMap的工作原理,包括基于hashCode计算key的哈希值,如何通过加载因子动态扩容数组,以及在冲突解决中如何使用链表和红黑树。当节点数量达到一定阈值时,HashMap会自动将链表转换为红黑树,以优化查找性能。此外,还介绍了在获取值时的查找策略,涉及哈希算法和数据结构的交互影响。
摘要由CSDN通过智能技术生成

HashMap分析
&esmp;1,基于hashCode()方法计算key的hash值
&esmp;2,创建Node数组,基于加载因子扩容,平衡内存占用与执行效率
&esmp;3,创建Node对象,基于key的hash值+算法,计算Node对象在数组中的索引
&esmp;&esmp;(Node对象中,封装Key/value对象,相同位置存Node对象时)
&esmp;&esmp;(1)小于或等于6个重复时,基于单向链表进行保存
&esmp;&esmp;(2)大于或等于8个重复时,基于红黑树保存
&esmp;&esmp;(3)当数量发生改变的时候,转换数据结构
&esmp;4,获取时,基于key的hash值+算法,直接获取Node对象,想获得值,还需要确定数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值