HashMap
基本数据结构
数组、链表和红黑树,链表长度大于等于8转化红黑树,链表长度小于等于6退化成链表,中间隔一个7是为了防止数据结构频繁转化,扩容因子0.75
初始化方法
put方法
第一步封装Node节点,key和value都在里面
否则 直接hash运算得到数组下标,把值放进去
如果 达到扩容的阈值,先扩容出一个新数组,旧的值进行rehash放进新数组,新值hash放进去
如果hash碰撞,放入Node的下一个节点
为什么线程不安全
常规博客说法扩容是不安全的,我认为hash碰撞后,链表的延长(可能会直接变成树结构)也是不安全的,但是概率太低
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端