關於String類中的hashcode的相關整理

爲什麼JavaString哈希乘數選擇31? 31是奇素數(可以充分利用原始數據包含的信息) 哈希分佈比較均勻。偶數的衝突率很高,只有少數例外。小乘數(1-20)的衝突率也很高 哈希計算很快。選用31是JVM的一種優化。位移和減法操作比乘法操作快速 31*hash=(hash<<5)-hash; 31和33的計算速度和哈希分佈基本一致,整體表現好(大於31,33的奇數雖然效果也不錯,但是31和33
相關文章
相關標籤/搜索