為何HashMap的數組長度一定是2的次冪?


https://blog.csdn.net/Tane_1018/article/details/103392267

通過上邊可以看到,當數組長度不為2的n次冪 的時候,hashCode 值與數組長度減一做與運算 的時候,會出現重復的數據,

因為不為2的n次冪 的話,對應的二進制數肯定有一位為0 , 這樣不管你的hashCode 值對應的該位,是0還是1 ,

最終得到的該位上的數肯定是0,這帶來的問題就是HashMap上的數組元素分布不均勻,而數組上的某些位置,永遠也用不到
————————————————
版權聲明:本文為CSDN博主「Tane_1018」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Tane_1018/java/article/details/103392267


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM