hashmap 1.8 代码解析

本文详细解析了HashMap的工作原理,包括其初始容量、最大容量、加载因子等关键参数设定,以及put和get操作的具体流程,深入探讨了红黑树的使用条件与转换机制。

初始容量 DEFAULT_INITIAL_CAPACITY   16

最大容量 MAXIMUM_CAPACITY  2 的 30 次方

默认加载因子 DEFAULT_LOAD_FACTOR  0.75f

树值入口 TREEIFY_THRESHOLD  8

非树值入口  UNTREEIFY_THRESHOLD  6

最小树值入口 MIN_TREEIFY_CAPACITY = 64

put
    1.如果容器的值和长度为0是创建容器
    2.根据vale的hash值判断位置的存储是否为空,如果是创建值
    3.如果vale的has值判断不为空
       3.1 而且key的值不为空,而且还存在对应的key。赋值
       3.2 如果key值不为空,当前节点的key值不对应,就会进入循环查找下一个key是否相同
         3.2.1 如果下一个节点的key值相同就赋值
         3.2.2 如果下一个节点为空,判断是否达到要转tree结构,就新建一个node节点
       3.3如果单曲节点为树形结构,就进行红黑树结构新增节点
       
       
       
get 
   1.判断节点是否为空,否则就获取对应hash值中的第一个节点值,并判断是否为空
   2.如果对应hash值中的最后一个节点值不为空,就判断当前值是否是寻找的节点,如果是就返回值
   3.否则遍历获取下一个节点
     3.1先判断是否为tree节点,如果是就按tree节点进行处理
     3.2如果下一个节点是链的节点就判断当前key是否一致,如果是就返回值

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值