Python

解决哈希冲突的方式

2019-06-08  本文已影响54人  鸿雁长飞鱼龙潜跃

针对哈希冲突,常用的思路有两种:

1,闭散列。

2,开散列。

思考:HashMap处理哈希冲突采用的是哪种方式?

答:HashMap解决哈希冲突采用的是链地址法。属于开散列。说白了就是把冲突的key连接起来,放到桶里。当桶中的元素个数不超过6个时,以单链表的形式串起来,当桶中的元素个数超过6个时,以红黑树的形式串起来。

一,闭散列

闭散列:又叫开放地址法或者也叫线性探测法。

什么意思呢?当我们要往哈希表中插入一个数据时,通过哈希算法计算key的hashcode,当我们找到该位置时,发现已经有元素了,此时我们就找紧跟着这一位置的下一个位置,看是否存在元素,如果能则插入,不能则继续探测紧跟着当前位置的下一个位置。

二,开散列

开散列方法,open hashing,也称为拉链法,separate chaining。开散列法把发生冲突的关键码存储在散列表主表之外。

上一篇 下一篇

猜你喜欢

热点阅读