HashMap與Hashtable的區別?

HashMap是不線程安全的,底層都是數組+鏈表結構,key與value都可以是null;
Hashtable是線程安全的,底層都是數組+鏈表結構,key與value都不可以是null;
HashMap的初始容量爲16,Hashtable初始容量爲11,兩者的填充因子默認都是0.75。
HashMap擴容時是當前容量翻倍即:capacity2,Hashtable擴容時是容量翻倍+1即:capacity2+1
HashMap是對Map接口的實現,HashTable實現了Map接口和Dictionary抽象類。
兩者計算hash的方法不同
Hashtable計算hash是直接使用key的hashcode對table數組的長度直接進行取模
HashMap計算hash對key的hashcode進行了二次hash,以獲得更好的散列值,然後對table數組長度取摸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章