国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java HashMap、HashTable詳解

2019-11-06 07:56:31
字體:
來源:轉載
供稿:網友

    Map是一個映射接口,其中的每個元素都是一個key-value鍵值對,同樣抽象類AbstractMap通過適配器模式實現了Map接口中的大部分函數,TreeMap、HashMap、WeakHashMap等實現類都通過繼承AbstractMap來實現,另外,不常用的HashTable直接實現了Map接口,它和Vector都是JDK1.0就引入的集合類。

HashMap:

    1、HashMap中key和value都允許為null

    2、線程不安全。為實現線程安全,可以Collections.synchronizedMap()方法來獲取一個線程安全的集合

    3、HashMap在不指定容量的情況下的默認容量為16,HashMap底層數組的容量要求一定為2的整數次冪

    4、加載因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度,當哈希表中的條目數超出了加載因子與當前容量的乘積時,則要對該哈希表進行 resize 操作(即擴容)。默認為0.75

    5、如果key為null,則直接從哈希表的第一個位置table[0]對應的鏈表上查找。如果key不為null,則先求的key的hash值,根據hash值找到在table中的索引。

HashTable:

    1、HashTable中key和value都不允許為null

    2、線程安全的,用于多線程下

    3、HashTable在不指定容量的情況下的默認容量為11,HashTable不要求底層數組的容量一定要為2的整數次冪

共同點:

    1、二者的存儲結構(哈希表--》數組+鏈表)和解決沖突的方法都是相同的。

不同點:

1、兩者計算hash的方法不同,Hashtable計算hash是直接使用key的hashcode對table數組的長度直接進行取模

2、線程安全性

3、初始化容量

4、HashMap是對Map接口的實現,HashTable實現了Map接口和Dictionary抽象類

5、HashMap可以使用null作為key,而Hashtable則不允許null作為key

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 科技| 苗栗县| 宣汉县| 成武县| 土默特右旗| 合山市| 盱眙县| 融水| 新平| 上犹县| 阿拉尔市| 建湖县| 清水县| 沈阳市| 洛隆县| 太仓市| 涟水县| 全椒县| 浮山县| 大洼县| 阳曲县| 大城县| 晋州市| 公安县| 嘉荫县| 乌拉特前旗| 育儿| 曲沃县| 重庆市| 措美县| 陈巴尔虎旗| 丰镇市| 察隅县| 九江县| 贵阳市| 岳阳县| 洪湖市| 台东市| 夹江县| 新泰市| 宜兴市|