hashmap的put流程
时间: 2023-11-28 14:40:37 浏览: 124
总结put处理过程-HashMap源码(上)
HashMap的put流程如下:
1. 首先,根据要插入的key计算出hash值。
2. 根据hash值通过一个算法(如取模运算)找到数组中的对应位置,这个位置称为桶(bucket)。
3. 如果该桶为空,直接将(key, value)作为一个Entry插入到该桶中,并返回null。
4. 如果该桶不为空,则遍历该桶中的所有Entry,找到与key相等的Entry。
- 如果找到了相等的key,将该Entry的value替换为新的value,并返回旧的value。
- 如果没有找到相等的key,将(key, value)作为一个新的Entry插入到该桶的链表或红黑树的末尾。
(HashMap采用链表和红黑树结合的方式处理哈希冲突,链表用于较短的链表,红黑树用于较长的链表,提高查找效率)
如果链表长度达到了阈值(默认为8),链表将被转换为红黑树。
如果桶内的元素数量超过了阈值(默认为64),则会触发扩容操作。
5. 插入完成后,返回null。
阅读全文