當前位置:成語大全網 - 漢語詞典 - hashmap的底層實現原理是什麽?

hashmap的底層實現原理是什麽?

HashMap的實現原理:首先有壹個數組,數組中每個元素都是壹個鏈表(可能不準確)。添加壹個元素(key-value)時,首先計算元素key的hash值,從而確定要插入數組的位置,但是hash值相同的元素可能已經放在數組的相同位置了。

此時,它們被添加到具有相同哈希值的元素的後面。它們在數組的相同位置,但是它們組成了壹個鏈表。同壹個鏈表上的哈希值是相同的,所以數組存儲在壹個鏈表中。當鏈表長度過長時,鏈表轉換成紅黑樹,大大提高了搜索效率。

當鏈表數組的容量超過初始容量的0.75時,通過哈希對鏈表數組進行兩次擴展,將原鏈表數組移動到新數組中。

HashMap的壹個實例有兩個影響其性能的參數:

初始容量和裝載系數。容量是哈希表中的桶數,初始容量只是哈希表創建時的容量。

負載因子是壹種衡量哈希表在容量自動增加之前可以有多滿的指標。當哈希表中的條目數量超過加載因子和當前容量的乘積時,哈希表將被重新哈希(即內部數據結構將被重建),這樣哈希表將具有大約兩倍的桶數量。在Java編程語言中,加載因子的默認值為0.75,默認哈希表元素為101。