hashmapput的过程
时间: 2023-11-08 22:34:45 浏览: 86
HashMap在put数据时是如何找到要存放的位置的?.docx
HashMap的put方法实际上是将key和value存储到HashMap中,过程如下:
1. 首先,将存储的key通过hash函数计算出其在数组中的位置,即“hash值”(HashMap底层使用数组实现)。
2. 如果该位置没有元素,直接将key-value存储在该位置。
3. 如果该位置已经有元素,则需要进行以下操作:
- 如果该位置上已经存储了一个key-value对,且该key-value对的key与当前存储的key相同,则将该位置上的value更新为当前存储的value。
- 如果该位置上已经存储了一个key-value对,但是该key-value对的key与当前存储的key不同,则需要进行“链式存储”。
链式存储是指在该位置上维护一个链表,将所有hash值相同的key-value对存储在同一个链表中。新的key-value对将被加入到该链表的末尾。
4. 如果链表长度超过了阈值,则需要将该链表转化为红黑树,以提高查找效率。
总之,HashMap的put方法是一个比较复杂的过程,需要考虑多种情况,包括hash值冲突、链式存储、红黑树转化等。
阅读全文