Java中HashMap、HashSet、HashTable有哪些區(qū)別

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

在松江等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿(mào)網(wǎng)站建設 網(wǎng)站設計制作按需制作,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,網(wǎng)絡營銷推廣,成都外貿(mào)網(wǎng)站制作,松江網(wǎng)站建設費用合理。

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

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


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


區(qū)別二:線程安全性不同


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


區(qū)別三:是否提供 contains 方法


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


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


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


Hashtable 中,key 和 value 都不允許出現(xiàn) null 值。


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


區(qū)別五:哈希值的計算方法不同

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


區(qū)別六:內(nèi)部實現(xiàn)使用的數(shù)組初始化和擴容方式不同


內(nèi)存初始大小不同,HashTable 初始大小是 11,而 HashMap 初始大小是 16

以上是“Java中HashMap、HashSet、HashTable有哪些區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站欄目:Java中HashMap、HashSet、HashTable有哪些區(qū)別
當前URL:http://muchs.cn/article32/jejhsc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、微信小程序、定制開發(fā)網(wǎng)站建設、網(wǎng)站設計網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管