- 首先根据key的值计算hash值,找到该元素在数组中存储的下标
- 如果数组是空的,则调用resize进行初始化;
- 如果没有哈希冲突直接放在对应的数组下标里
- 如果冲突了,且key已经存在,就覆盖掉value
- 如果冲突后是链表结构,就判断该链表是否大于8,如果大于8并且数组容量小于64,就进行扩容;如果链表节点数量大于8并且数组的容量大于64,则将这个结构转换成红黑树;否则,链表插入键值对,若key存在,就覆盖掉value
- 如果冲突后,发现该节点是红黑树,就将这个节点挂在树上
7
HashMap的put方法流程
最新推荐文章于 2024-09-02 22:33:56 发布