混列如何存储数据实际上是一个数组,混列表通常包含键值和条目。
下图:
这里的学习号码是key,哈希表是根据key值用散列函数计算出的值,这个值是下标值,决定这个Entry存储在哈希表的哪个位置。
Hash碰撞Hash碰撞是指用Hash计算两个不同的值(如娇绿草、dfdxlz学号)后得到的hash值相同,后面的dfdxlz位于原来娇绿草的位置http://瓦时
解决方法hash冲突的解决方法是开放地址法和拉链法。
开放地址法是指,如果当前数组位置1被占用,则放置在下一个位置2,如果2也被占用,则持续查找直到找到空闲位置。
拉链法采用链表的方式。 在这种情况下,位置1不仅仅是条目。 在这种情况下,Entry会保存其他指向数组外其他位置的next指针,并将dfdxlz放置在此处。 娇嫩的绿草条目下一个指针指向dfdxlz上的这个位置,也就是存储的这个位置的内存地址。 如果仍然存在冲突,请将冲突的Entry放在新位置,dfdxlz的Entry指向它,以形成链表。
总之,开放地址法和拉链法都是为了保存发生冲突的值而找到下一个空闲位置的方法。