在《算法导论》(CLRS)一书中,有几种哈希函数,例如mod、multiply等。
Java使用何种哈希函数将键映射到槽中呢?
我看到这里有一个问题:Hashing function used in Java Language。但它没有回答这个问题,而且我认为该问题的标记答案是错误的。它说hashCode()让你为Hashtable编写自己的哈希函数,但我认为这是错误的。
由hashCode()返回的整数才是Hashtable的真正键,然后Hashtable使用哈希函数来哈希hashCode()。这个答案暗示了Java给你一个机会为Hashtable提供一个哈希函数,但不,这是错误的。hashCode()给出了真正的键,而不是哈希函数。
那么Java究竟使用了哪个哈希函数呢?