2020-04-06:為什么HashMap不一直使用紅黑樹?


紅黑樹的閾值是8,當鏈表大於等於8時鏈表變成了紅黑樹結構,大大減少了查找的時間。

當長度低於6時會由紅黑樹轉成鏈表,TreeNodes占用空間是普通Nodes的兩倍,所以只有當bin包含足夠多的節點時才會轉成TreeNodes,而是否足夠多就是由TREEIFY_THRESHOLD的值決定的,當bin中節點數變少時,又會轉成普通的bin,這樣就解析了為什么不是一開始就將其轉換為TreeNodes,而是需要一定節點數才轉為TreeNodes,說白了就是trade-off,空間和時間的權衡。


免責聲明!

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



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