HashMap

基本数据结构

数组、链表和红黑树,链表长度大于等于8转化红黑树,链表长度小于等于6退化成链表,中间隔一个7是为了防止数据结构频繁转化,扩容因子0.75

初始化方法

 

put方法

第一步封装Node节点,key和value都在里面

否则 直接hash运算得到数组下标,把值放进去

如果 达到扩容的阈值,先扩容出一个新数组,旧的值进行rehash放进新数组,新值hash放进去

如果hash碰撞,放入Node的下一个节点

 

为什么线程不安全

常规博客说法扩容是不安全的,我认为hash碰撞后,链表的延长(可能会直接变成树结构)也是不安全的,但是概率太低

posted @   时间羚羊  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示