1,开放地址法
基本思想是发生冲突时,再使用另一种操作探测其他空位
公式就是:H(key) = [H(key)+di] mod m,其中m为表长度,di就是我们说的另一种操作;
di为再次探测时的地址增量;根据di的不同取法,有不同的称呼;
- 线性探测再散列:di = 1、2、3、4....k (k<m-1)
- 二次探测再散列:di = 1^2,-1^2,2^2,-2^2.....k^2,-k^2 (k<=m/2)
- 伪随机再散列:di = 伪随机数
2,再哈希法
基本思想是发生冲突时,再次使用哈希函数,直到无冲突
公式就是Hi = RHi(key), i = 1,2,3,4,5,6....k;
产生冲突时,再使用另一个哈希函数,直到不冲突
比如第一次按照姓首字母进行哈希,如果产生冲突可以按照姓字母第二位进行哈希,再冲突,第三位,直到不冲突为止;
3,拉链法
HashMap中使用的方法
4,建立公共溢出区
对冲突数据集中管理