Java基础系列-equals方法和hashCode方法 (2)

双重散列法:要解决群集,就要想办法让相同hash结果的序列不同,最好让序列函数依赖于元素本身,保证当元素不同时,即使hash结果一致,但一旦发生冲突,不同的元素的序列是不同的(因为序列还要依赖元素本身,元素不同,序列结果就会不同),这样存在两个依赖变量的探查方法,可以极大的避免集群问题。

再HASH法(知道)

建立公共溢出区法(知道)

        hashCode的实现方式并不是随手而来的,需要考虑各种情况,选择合适的方式来实现,举个例子,在Java的HashMap集合中,采用的就是链地址法来处理hash冲突。

        参考:

Java hashCode() 和 equals()的若干问题解答

白话算法(6) 散列表(Hash Table)从理论到实用(上)

白话算法(6) 散列表(Hash Table)从理论到实用(中)

白话算法(6) 散列表(Hash Table)从理论到实用(下)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzjpf.html