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

HashMap 和 HashSet的區(qū)別

 更新時間:2016年09月06日 17:19:08   作者:唐小娟  
本文主要介紹HashMap 和 HashSet的區(qū)別,這里整理了詳細的資料來說名兩者的區(qū)別,并說明如何使用該方法,有需要的小伙伴可以參考下

HashMap和HashSet的區(qū)別是Java面試中最常被問到的問題。如果沒有涉及到Collection框架以及多線程的面試,可以說是不完整。而Collection框架的問題不涉及到HashSet和HashMap,也可以說是不完整。HashMap和HashSet都是collection框架的一部分,它們讓我們能夠使用對象的集合。collection框架有自己的接口和實現(xiàn),主要分為Set接口,List接口和Queue接口。它們有各自的特點,Set的集合里不允許對象有重復(fù)的值,List允許有重復(fù),它對集合中的對象進行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。

首先讓我們來看看什么是HashMap和HashSet,然后再來比較它們之間的分別。

什么是HashSet

HashSet實現(xiàn)了Set接口,它不允許集合中有重復(fù)的值,當(dāng)我們提到HashSet時,第一件事情就是在將對象存儲在HashSet之前,要先確保對象重寫equals()和hashCode()方法,這樣才能比較對象的值是否相等,以確保set中沒有儲存相等的對象。如果我們沒有重寫這兩個方法,將會使用這個方法的默認實現(xiàn)。

public boolean add(Object o)方法用來在Set中添加元素,當(dāng)元素值重復(fù)時則會立即返回false,如果成功添加的話會返回true。

什么是HashMap

HashMap實現(xiàn)了Map接口,Map接口對鍵值對進行映射。Map中不允許重復(fù)的鍵。Map接口有兩個基本的實現(xiàn),HashMap和TreeMap。TreeMap保存了對象的排列次序,而HashMap則不能。HashMap允許鍵和值為null。HashMap是非synchronized的,但collection框架提供方法能保證HashMap synchronized,這樣多個線程同時訪問HashMap時,能保證只有一個線程更改Map。

public Object put(Object Key,Object value)方法用來將元素添加到map中。

你可以閱讀這篇文章看看HashMap的工作原理,以及這篇文章看看HashMap和HashTable的區(qū)別。

HashSet和HashMap的區(qū)別

*HashMap* *HashSet*
HashMap實現(xiàn)了Map接口 HashSet實現(xiàn)了Set接口
HashMap儲存鍵值對 HashSet僅僅存儲對象
使用put()方法將元素放入map中 使用add()方法將元素放入set中
HashMap中使用鍵對象來計算hashcode值 HashSet使用成員對象來計算hashcode值,對于兩個對象來說hashcode可能相同,所以equals()方法用來判斷對象的相等性,如果兩個對象不同的話,那么返回false
HashMap比較快,因為是使用唯一的鍵來獲取對象 HashSet較HashMap來說比較慢

如果你還知道其它的什么不同點,請留言。

原文鏈接: Javarevisited 翻譯: ImportNew.com - 唐小娟
譯文鏈接: http://www.importnew.com/6931.html

相關(guān)文章

  • JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能示例

    JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能示例

    這篇文章主要介紹了JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能,結(jié)合實例形式詳細分析了java使用數(shù)組存儲數(shù)據(jù)實現(xiàn)的商品信息查詢功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • JAVA中的構(gòu)造函數(shù)(方法)

    JAVA中的構(gòu)造函數(shù)(方法)

    這篇文章主要介紹了JAVA中的構(gòu)造函數(shù)(方法),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • jax-ws handler 的詳解及簡單實例

    jax-ws handler 的詳解及簡單實例

    這篇文章主要介紹了 jax-ws handler 的詳解及簡單實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Spring框架的JdbcTemplate使用

    Spring框架的JdbcTemplate使用

    它是 Spring 框架中提供的一個對象,是對原始 Jdbc API 對象的簡單封裝。本文就來介紹一下Spring框架的JdbcTemplate使用,感興趣的可以了解一下
    2021-09-09
  • Springboot整合https的實例代碼

    Springboot整合https的實例代碼

    本文簡單介紹了一些密碼學(xué)的基礎(chǔ)和如何通過Springboot整合HTTPS,本文將通過實例代碼給大家詳細介紹整合過程,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • 詳解在IDEA中使用MyBatis Generator逆向工程生成代碼

    詳解在IDEA中使用MyBatis Generator逆向工程生成代碼

    這篇文章主要介紹了詳解在IDEA中使用MyBatis Generator逆向工程生成代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Spring Cloud Feign 熔斷配置的一些小坑

    詳解Spring Cloud Feign 熔斷配置的一些小坑

    這篇文章主要介紹了詳解Spring Cloud Feign 熔斷配置的一些小坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Spring?Boot?Security認證之Redis緩存用戶信息詳解

    Spring?Boot?Security認證之Redis緩存用戶信息詳解

    本文介紹了如何使用Spring Boot Security進行認證,并通過Redis緩存用戶信息以提高系統(tǒng)性能,通過配置RedisUserDetailsManager,我們成功地將用戶信息存儲到了Redis中,并在Spring Security中進行了集成,需要的朋友可以參考下
    2024-01-01
  • 探究Java中Integer緩沖區(qū)底層原理

    探究Java中Integer緩沖區(qū)底層原理

    本文將會給大家講一講Integer這個包裝類的底層原理。在現(xiàn)在的就業(yè)環(huán)境下,我們需要知其然,還要知其所以然,才能更好地滿足就業(yè)需求,感興趣的小伙伴可以參考閱讀
    2023-05-05
  • java實現(xiàn)消息隊列的兩種方式(小結(jié))

    java實現(xiàn)消息隊列的兩種方式(小結(jié))

    本文主要介紹了兩種java實現(xiàn)消息隊列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實例發(fā)送消息,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論

香港| 周至县| 麻栗坡县| 即墨市| 大理市| 唐河县| 油尖旺区| 泸西县| 潜江市| 易门县| 星子县| 宜宾县| 麻栗坡县| 玉林市| 白河县| 上虞市| 华池县| 鄄城县| 子洲县| 三穗县| 商河县| 东明县| 宁陕县| 翁源县| 离岛区| 济宁市| 霞浦县| 云林县| 扶沟县| 汾阳市| 翼城县| 永寿县| 昂仁县| 忻州市| 登封市| 平原县| 田东县| 榆中县| 苗栗县| 克东县| 图们市|