hashmap put方法流程
时间: 2024-02-19 11:47:36 浏览: 61
总结put处理过程-HashMap源码(上)
1. 首先,put方法接收两个参数:键和值。
2. 然后,通过键的hashCode方法计算出哈希值,根据哈希值确定存储位置。
3. 如果该位置没有元素,则直接将键值对存储在该位置。
4. 如果该位置已经有元素了,则需要判断待插入的键与已有键是否相等。
5. 如果相等,说明该键已经存在,将新值覆盖旧值即可。
6. 如果不相等,说明发生了哈希碰撞,需要使用链表或红黑树等数据结构来存储键值对。
7. 如果该位置存储的是链表,遍历链表找到待插入的键值对所在的节点,然后更新该节点对应的值。
8. 如果该位置存储的是红黑树,使用树节点的比较方法找到待插入键值对所在的节点,然后更新该节点对应的值。
9. 如果链表或红黑树的大小超过了阀值,就需要将它们转换为红黑树或者扩容哈希表,以提高查找效率。
10. 最后,put方法返回旧值,如果该键不存在则返回null。
阅读全文