HashMap的put原理

1、判断table是否为空或者长度为0

1.1、是->进行扩容

1.2、否->进行hash分析命中哪个桶是否有值

2、进行hash分析命中哪个桶是否有值

2.1、是->key值是否一样

2.2、否->直接保存插入

3、key值是否一样

3.1、是->直接覆盖旧值

3.2、否->判断是否为树节点

4、判断是否为树节点

4.1、是->直接插入红黑树

4.2、否->遍历链表插入

5、判断链表长度是否大于8

5.1、是->转换成红黑树插入

6、判断map集合是否需要扩容

6.1、扩容->结束

6.2、结束

图片来源于小滴课堂:小滴课堂 - 首页


版权声明:本文为mazadazhangjia原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。