最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析Java中Map與HashMap,Hashtable,HashSet的區(qū)別

 更新時間:2013年09月03日 09:15:57   作者:  
HashMap和Hashtable兩個類都實現(xiàn)了Map接口,二者保存K-V對(key-value對);HashSet則實現(xiàn)了Set接口,性質(zhì)類似于集合

HashTable和HashMap區(qū)別

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

復制代碼 代碼如下:

public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, Serializable

public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable


第二,線程安全性不同。
Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情況下是非Synchronize的。在多線程并發(fā)的環(huán)境下,可以直接使用Hashtable,不需要自己為它的方法實現(xiàn)同步,但使用HashMap時就必須要自己增加同步處理。

第三,是否提供contains方法
HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey,因為contains方法容易讓人引起誤解。

Hashtable則保留了contains,containsValue和containsKey三個方法,其中contains和containsValue功能相同。

第四,key和value是否允許null值。
其中key和value都是對象,并且不能包含重復key,但可以包含重復的value。
Hashtable中,key和value都不允許出現(xiàn)null值。
HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應(yīng)的值為null。當get()方法返回null值時,可能是 HashMap中沒有該鍵,也可能使該鍵所對應(yīng)的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵, 而應(yīng)該用containsKey()方法來判斷。

第五,兩個遍歷方式的內(nèi)部實現(xiàn)上不同。
Hashtable、HashMap都使用了 Iterator。而由于歷史原因,Hashtable還使用了Enumeration的方式 。

第六,hash值不同。
哈希值的使用不同,HashTable直接使用對象的hashCode。而HashMap重新計算hash值。

第七,內(nèi)部實現(xiàn)使用的數(shù)組初始化和擴容方式不同。
Hashtable和HashMap它們兩個內(nèi)部實現(xiàn)方式的數(shù)組的初始大小和擴容的方式。HashTable中hash數(shù)組默認大小是11,增加的方式是 old*2+1。

HashMap中hash數(shù)組的默認大小是16,而且一定是2的指數(shù)。

相關(guān)文章

  • 簡單了解Spring beanfactory循環(huán)依賴命名重復屬性

    簡單了解Spring beanfactory循環(huán)依賴命名重復屬性

    這篇文章主要介紹了簡單了解Spring beanfactory循環(huán)依賴命名重復2大屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 一篇文章弄懂JVM類加載機制過程以及原理

    一篇文章弄懂JVM類加載機制過程以及原理

    JVM原理對于初學者而言,比較晦澀難以理解,概念繁多又比較抽象,很多時候感覺看不見摸不著,還不好驗證,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章弄懂JVM類加載機制過程及原理的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Kafka消費客戶端協(xié)調(diào)器GroupCoordinator詳解

    Kafka消費客戶端協(xié)調(diào)器GroupCoordinator詳解

    這篇文章主要為大家介紹了Kafka消費客戶端協(xié)調(diào)器GroupCoordinator使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Java接口的簡單定義與實現(xiàn)方法示例

    Java接口的簡單定義與實現(xiàn)方法示例

    這篇文章主要介紹了Java接口的簡單定義與實現(xiàn)方法,結(jié)合實例形式分析了java面向?qū)ο蟪绦蛟O(shè)計中接口的概念、功能、定義及使用技巧,需要的朋友可以參考下
    2019-01-01
  • JAVA Iterator接口與增強for循環(huán)的實現(xiàn)

    JAVA Iterator接口與增強for循環(huán)的實現(xiàn)

    這篇文章主要介紹了JAVA Iterator接口與增強for循環(huán)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • SpringMVC返回圖片的幾種方式(小結(jié))

    SpringMVC返回圖片的幾種方式(小結(jié))

    這篇文章主要介紹了SpringMVC返回圖片的幾種方式(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • java基礎(chǔ)之Object類

    java基礎(chǔ)之Object類

    這篇文章主要介紹了java基礎(chǔ)之Object類 的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • SpringBoot上傳圖片與視頻不顯示問題的解決方案

    SpringBoot上傳圖片與視頻不顯示問題的解決方案

    這篇文章主要介紹了關(guān)于springboot上傳圖片與視頻不顯示問題,最近做畢設(shè)時候需要上傳視頻的圖片與視頻,但是每次都需要重啟前端才能展示出此圖片,所以本文給大家介紹了SpringBoot上傳圖片與視頻不顯示問題的解決方案,需要的朋友可以參考下
    2024-03-03
  • Java設(shè)計模式中的門面模式詳解

    Java設(shè)計模式中的門面模式詳解

    門面模式又叫外觀模式(Facade Pattern),主要用于隱藏系統(tǒng)的復雜性,并向客戶端提供了一個客戶端可以訪問系統(tǒng)的接口,本文通過實例代碼給大家介紹下java門面模式的相關(guān)知識,感興趣的朋友一起看看吧
    2022-09-09
  • HttpServletRequest的getParameter()的坑及解決

    HttpServletRequest的getParameter()的坑及解決

    這篇文章主要介紹了HttpServletRequest的getParameter()的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論

呼和浩特市| 赤壁市| 顺义区| 台安县| 逊克县| 额济纳旗| 武山县| 临沧市| 酉阳| 称多县| 二连浩特市| 云霄县| 山丹县| 会宁县| 东乡县| 安多县| 辽源市| 潜山县| 内江市| 金昌市| 郁南县| 禄丰县| 南投县| 图片| 顺昌县| 旌德县| 北海市| 桑植县| 万安县| 漳州市| 吉木乃县| 行唐县| 石河子市| 洛隆县| 茌平县| 河津市| 南川市| 泗洪县| 乌恰县| 古田县| 施甸县|