基本数据结构
数组、链表和红黑树,链表长度大于等于8转化红黑树,链表长度小于等于6退化成链表,中间隔一个7是为了防止数据结构频繁转化,扩容因子0.75
初始化方法
put方法
第一步封装Node节点,key和value都在里面
否则 直接hash运算得到数组下标,把值放进去
如果 达到扩容的阈值,先扩容出一个新数组,旧的值进行rehash放进新数组,新值hash放进去
如果hash碰撞,放入Node的下一个节点
为什么线程不安全
常规博客说法扩容是不安全的,我认为hash碰撞后,链表的延长(可能会直接变成树结构)也是不安全的,但是概率太低
标签:扩容,Node,hash,HashMap,链表,数组 From: https://www.cnblogs.com/benjerry/p/17552595.html