
1 h%n==h&(n-1) 增加運算速度
2 使hash分布更均勻
3 擴容時僅需要多比較1個bit:
if ((e.hash & oldCap) == 0) { 重點
newTab[j + oldCap] = hiHead;重點
4 擴容遷移時,僅有一半的數據要遷移,減少遷移成本
這與分表中使用2的倍數是一個道理,比如最初32張,80001在表1,擴容64張,還在表1,如果33張,在表9

1 h%n==h&(n-1) 增加運算速度
2 使hash分布更均勻
3 擴容時僅需要多比較1個bit:
if ((e.hash & oldCap) == 0) { 重點
newTab[j + oldCap] = hiHead;重點
4 擴容遷移時,僅有一半的數據要遷移,減少遷移成本
這與分表中使用2的倍數是一個道理,比如最初32張,80001在表1,擴容64張,還在表1,如果33張,在表9
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。