HashMap问题
来源:10-4 HashMap

潇歌
2022-08-14
翔仔老师好,突然想到个问题,按理说我往HashMap里面赋值,每一个元素,它应该是一个key经过hash散列计算之后找到对应的索引下标 [i] ,并放入桶中,也就是数组的数据结构。也就是说只有当出现出现哈希碰撞的时候,才会出现数组转链表,并将重复的hash值放在链表的尾部,链表长度超过8位之后,转红黑树。
我的疑惑是,在实际中,真的会有出现很多哈希碰撞的情况吗(多个hash值一致),如果这样的话,HashMap怎么做到唯一性的,并且如何保证哈希碰撞后的每一个key拿出来的值是正确的。
写回答
1回答
-
翔仔
2022-08-14
同学好,是否频繁冲突取决于hash算法,如果数据量一大,超过桶数,就会出现碰撞的。此外,hashmap是通过key来寻址,先按照key的hash确定是哪个桶,再拿着这个key去对应的桶里找出这个kv,所以要是存在的话肯定是能正确找出来的。
00
相似问题