91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中HashMap、HashSet、HashTable有哪些區別

發布時間:2021-12-03 17:37:48 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Java中HashMap、HashSet、HashTable有哪些區別”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java中HashMap、HashSet、HashTable有哪些區別”這篇文章吧。

HashMap、HashSet、HashTable的區別:繼承的父類不同、線程安全性不同、是否提供 contains 方法、**key 和 value 是否允許 null 值 、哈希值的計算方法不同、內部實現使用的數組初始化和擴容方式不同。

Java中HashMap、HashSet、HashTable有哪些區別
  區別一:繼承的父類不同


  Hashtable 繼承自 Dictionary 類,而 HashMap 繼承自AbstractMap 類。但二者都實現了 Map 接口。


  區別二:線程安全性不同


  Hashtable 中的方法是 Synchronize 的,而 HashMap 中的方法在缺省情況下是非 Synchronize 的。


  區別三:是否提供 contains 方法


  HashMap 把 Hashtable 的 contains 方法去掉了,改成containsValue 和 containsKey,因為 contains 方法容易讓人引起誤解。
  Hashtable 則保留了 contains,containsValue 和 containsKey三個方法,其中 contains 和 containsValue 功能相同。


  區別四:**key 和 value 是否允許 null 值 (面試比較喜歡問)


  其中 key 和 value 都是對象,并且不能包含重復 key,但可以包含重復的 value。


  Hashtable 中,key 和 value 都不允許出現 null 值。


  HashMap 中,null 可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為 null。當 get()方法返回 null值時,可能是 HashMap 中沒有該鍵,也可能使該鍵所對應的值為 null。因此,在 HashMap 中不能由 get()方法來判斷 HashMap 中是否存在某個鍵, 而應該用 containsKey()方法來判斷。


  區別五:哈希值的計算方法不同

       Hashtable 直接使用的是對象的 hashCode,而 HashMap 則是在對象的 hashCode 的基礎上還進行了一些變化。


  區別六:內部實現使用的數組初始化和擴容方式不同


  內存初始大小不同,HashTable 初始大小是 11,而 HashMap 初始大小是 16

以上是“Java中HashMap、HashSet、HashTable有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荣成市| 磐石市| 平阴县| 华宁县| 贵阳市| 玉林市| 桓台县| 龙胜| 且末县| 遂川县| 新巴尔虎左旗| 涡阳县| 永仁县| 韶关市| 湾仔区| 阿合奇县| 平和县| 武威市| 顺昌县| 富川| 盱眙县| 沐川县| 木里| 景德镇市| 哈巴河县| 大名县| 沭阳县| 许昌县| 尼玛县| 乌审旗| 洪洞县| 上高县| 横峰县| 阳高县| 临沭县| 清徐县| 家居| 高碑店市| 赤壁市| 宁陕县| 青州市|