為什么jdk8以后HashMap會使用紅黑樹優化?
在Jdk1.8版本后,Java對HashMap做了改進,在鏈表長度超過8且陣列長度大于64時,將后面的資料存在紅黑樹中,以加快檢索速度,
為什么是使用紅黑樹而不是AVL樹,AVL樹是完全平衡二叉樹阿?
在CurrentHashMap中是加鎖了的,實際上是讀寫鎖,如果寫沖突就會等待,如果插入時間過長必然等待時間更長,而紅黑樹相對AVL樹他的插入更快!在AVL樹中,從根到任何葉子的最短路徑和最長路徑之間的差異最多為1,在紅黑樹中,差異可以是2倍,
在AVL樹中查找通常更快,但這是以更多旋轉操作導致更慢的插入和洗掉為代價的,紅黑樹在添加,洗掉,查找相對較好,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274394.html
標籤:java
下一篇:Java進階知識——反射
