双重散列法:要解决群集,就要想办法让相同hash结果的序列不同,最好让序列函数依赖于元素本身,保证当元素不同时,即使hash结果一致,但一旦发生冲突,不同的元素的序列是不同的(因为序列还要依赖元素本身,元素不同,序列结果就会不同),这样存在两个依赖变量的探查方法,可以极大的避免集群问题。
再HASH法(知道)
建立公共溢出区法(知道)
hashCode的实现方式并不是随手而来的,需要考虑各种情况,选择合适的方式来实现,举个例子,在Java的HashMap集合中,采用的就是链地址法来处理hash冲突。
参考:
Java hashCode() 和 equals()的若干问题解答
白话算法(6) 散列表(Hash Table)从理论到实用(上)
白话算法(6) 散列表(Hash Table)从理论到实用(中)
白话算法(6) 散列表(Hash Table)从理论到实用(下)