Java 字串的 hashCode() 方法中為何使用 31 作為乘數?
Java 文件規定了String 物件的乘數的計算雜湊碼如下:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
其中s[i] 是第i 個字串的字符,n 是字串的長度,^ 表示求冪。公式包含固定乘數 31。
使用31 作為乘數的基本原理
根據Joshua Bloch 的受人尊敬的著作《Effective Java》,選擇31因為乘數取決於幾個因子:
以上是為什麼 Java 的字串「hashCode()」使用 31 作為乘數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!