這個很簡單,首先我們考慮一個問題,為什么hashmap的容量為2的冪次方,查看源碼即可發現在計算存儲位置時,計算式為:
(n-1)&hash(key)
容量n為2的冪次方,n-1的二進制會全為1,位運算時可以充分散列,避免不必要的哈希沖突。
所以擴容必須2倍就是為了維持容量始終為2的冪次方。
這個很簡單,首先我們考慮一個問題,為什么hashmap的容量為2的冪次方,查看源碼即可發現在計算存儲位置時,計算式為:
(n-1)&hash(key)
容量n為2的冪次方,n-1的二進制會全為1,位運算時可以充分散列,避免不必要的哈希沖突。
所以擴容必須2倍就是為了維持容量始終為2的冪次方。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。