国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

HashSet源碼分析

aaron / 914人閱讀

摘要:內(nèi)部是利用實(shí)現(xiàn)的,將值存在的上這也是為什么不允許存取重復(fù)值得原因。數(shù)據(jù)結(jié)構(gòu)與支持映射中的對象關(guān)聯(lián)的虛擬值中的,只是一個(gè)無意義的空對象默認(rèn)的構(gòu)造函數(shù)查詢內(nèi)容的時(shí)候?qū)嶋H是在中查詢增加的時(shí)候,在的位置放置要存的值,在中放置一個(gè)沒有意義的空對象

hashSet內(nèi)部是利用hashMap實(shí)現(xiàn)的,將值存在hashmap的key上這也是為什么hashset不允許存取重復(fù)值得原因。

數(shù)據(jù)結(jié)構(gòu)

    private transient HashMap map;    

    // 與支持映射中的對象關(guān)聯(lián)的虛擬值 ,map中的value,只是一個(gè)無意義的空對象
    private static final Object PRESENT = new Object();

默認(rèn)的構(gòu)造函數(shù)

    public HashSet() {
        map = new HashMap<>();
    }

查詢內(nèi)容的時(shí)候?qū)嶋H是在map中查詢key

    public boolean contains(Object o) {
        return map.containsKey(o);
    }

增加的時(shí)候,在key的位置放置要存的值,在value中放置一個(gè)沒有意義的空對象

    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/72855.html

相關(guān)文章

  • HashSet源碼分析:JDK源碼系列

    摘要:簡介繼續(xù)分析源碼,上一篇文章把的分析完畢。本文開始分析簡單的介紹一下。存儲(chǔ)的元素是無序的并且允許使用空的元素。 1.簡介 繼續(xù)分析源碼,上一篇文章把HashMap的分析完畢。本文開始分析HashSet簡單的介紹一下。 HashSet是一個(gè)無重復(fù)元素集合,內(nèi)部使用HashMap實(shí)現(xiàn),所以HashMap的特征耶繼承了下來。存儲(chǔ)的元素是無序的并且HashSet允許使用空的元素。 HashSe...

    用戶83 評論0 收藏0
  • Java容器類框架分析(5)HashSet源碼分析

    摘要:到此發(fā)現(xiàn),實(shí)際上可以拆分成跟指的是,則是指實(shí)現(xiàn)了接口,這樣看來,的實(shí)現(xiàn)其實(shí)就比較簡單了,下面開始分析源碼。 概述 在分析HashSet源碼前,先看看HashSet的繼承關(guān)系 showImg(https://segmentfault.com/img/bVWo4W?w=605&h=425); HashSet繼承關(guān)系從上圖可以看出,HashSet繼承自AbstractSet,實(shí)現(xiàn)了Set接口...

    wslongchen 評論0 收藏0
  • [學(xué)習(xí)筆記-Java集合-9] Set - HashSet源碼分析

    摘要:源碼分析屬性內(nèi)部使用虛擬對象,用來作為放到中構(gòu)造方法非,主要是給使用的構(gòu)造方法都是調(diào)用對應(yīng)的構(gòu)造方法。遍歷元素直接調(diào)用的的迭代器。什么是機(jī)制是集合中的一種錯(cuò)誤機(jī)制。當(dāng)使用迭代器迭代時(shí),如果發(fā)現(xiàn)集合有修改,則快速失敗做出響應(yīng),拋出異常。 簡介 集合,這個(gè)概念有點(diǎn)模糊。 廣義上來講,java中的集合是指java.util包下面的容器類,包括和Collection及Map相關(guān)的所有類。 中...

    kohoh_ 評論0 收藏0
  • [學(xué)習(xí)筆記-Java集合-10] Set - LinkedHashSet源碼分析

    摘要:就有這個(gè)功能,它是怎么實(shí)現(xiàn)有序的呢源碼分析繼承自,讓我們直接上源碼來看看它們有什么不同。是有序的,它是按照插入的順序排序的。所以,是不支持按訪問順序?qū)υ嘏判虻模荒馨床迦腠樞蚺判颉? 介紹 上一節(jié)我們說HashSet中的元素是無序的,那么有沒有什么辦法保證Set中的元素是有序的呢? 答案是當(dāng)然可以。 LinkedHashSet就有這個(gè)功能,它是怎么實(shí)現(xiàn)有序的呢? 源碼分析 Linked...

    ThreeWords 評論0 收藏0
  • 3分鐘搞掂Set集合

    摘要:下面總結(jié)一下集合常用的三個(gè)子類吧無序,允許為,底層是散列表紅黑樹,非線程同步有序,不允許為,底層是紅黑樹非線程同步迭代有序,允許為,底層是雙向鏈表,非線程同步從結(jié)論而言我們就可以根據(jù)自己的實(shí)際情況來使用了。 前言 聲明,本文用的是jdk1.8 前面章節(jié)回顧: Collection總覽 List集合就這么簡單【源碼剖析】 Map集合、散列表、紅黑樹介紹 HashMap就是這么簡單【源碼...

    widuu 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<