2
可能重複:
Why does Java's hashCode() in String use 31 as a multiplier?重載hashCode最佳實踐
@Override public int hashCode() {
int result = 17 + hashDouble(re);
result = 31 * result + hashDouble(im);
return result;
}
這是 「有效的Java」 的代碼。它廣泛用於企業應用程序嗎?我很擔心添加靜態值。或者我們應該將17和31定義爲某種Utility類中的最終變量,並從那裏引用它們?
也可以有人解釋這些數字是什麼? 31只是一個隨機選擇的素數?