解决hash冲突的方式

1、开放寻址法

1.1线性探测法(ThreadLocalMap):当遇到hash冲突时,往后移查找可以存放该元素的位置。

1.2线性补偿探测法:hash = (hash+1)%m改为 hash =(hash+Q)%m,m,q互质。

1.3伪随机探测:hash = (hash+k)%m

缺点:1.容易造成堆聚现象,添加元素越多,堆聚现象越严重。 

           2.删除元素特别困难,当位置为空时,无法判断元素的位置。

2 链表法 hashmap

缺点:耗费空间

3 再散列

4建立公共溢出区

你可能感兴趣的:(解决hash冲突的方式)