若桶中鏈表元素個數(shù)大于等于8時酒来,鏈表轉(zhuǎn)換成樹結(jié)構(gòu)卢未;若桶中鏈表元素個數(shù)小于等于6時,樹結(jié)構(gòu)還原成鏈表。
理想情況下使用隨機的哈希碼辽社,容器中節(jié)點分布在hash桶中的頻率遵循泊松分布伟墙;
依照泊松分布計算出hash桶中元素個數(shù)與概率如下:
0: 0.60653066
1: 0.30326533
2: 0.07581633
3: 0.01263606
4: 0.00157952
5: 0.00015795
6: 0.00001316
7: 0.00000094
8: 0.00000006
因此原因有2
- 1.桶的長度超過8的概率非常非常小。所以作者是根據(jù)
概率統(tǒng)計而選擇了8作為閥值滴铅。 - 2.之所以沒有直接使用紅黑樹的結(jié)構(gòu)戳葵,是因為紅黑樹的節(jié)點比鏈表節(jié)點大,占用空間更大汉匙,而且鏈表比較短的時候查詢也足夠快拱烁,因此沒必要直接使用紅黑樹的結(jié)構(gòu)。