HashMap 的 put 方法用于将指定的键值对插入到哈希表中。它具有以下形式的重载:
![](https://img.haomeiwen.com/i28978680/1cfb05f08cdddd8b.png)
该方法接受一个键 key 和一个值 value,并将它们作为一个键值对插入到 HashMap 中。方法返回的是之前与该键相关联的值,如果之前没有与该键相关联的值,则返回 null。
下面是 put 方法的主要过程:
根据键 key 的哈希值计算出插入位置,即确定桶的索引。
如果该桶为空,表示没有冲突,直接将键值对插入到该桶中。
如果该桶不为空,则遍历链表或树,检查是否已经存在相同的键:
如果找到相同的键,则替换对应的值,并返回之前的值。
如果在链表中或树中未找到相同的键,则将新的键值对追加到链表或树的末尾。
如果链表的长度超过阈值(默认为 8),则将链表转换为红黑树,以提高查找效率。
如果键值对数量超过了负载因子乘以哈希表容量的阈值,即达到了扩容的条件,则进行扩容操作,重新计算哈希值,并重新分配键值对。
网友评论