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

資訊專欄INFORMATION COLUMN

HashSet & TreeSet小結(jié)

CollinPeng / 3352人閱讀

摘要:存儲(chǔ)元素實(shí)際為存儲(chǔ)的鍵值對(duì)為的,為固定對(duì)象遍歷方式支持正向反向迭代器遍歷和遍歷順序迭代器實(shí)現(xiàn)順序遍歷實(shí)現(xiàn)逆序遍歷反向迭代器實(shí)現(xiàn)

HashSet & TreeSet小結(jié) 聲明

文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/u/yzwall

HashSet小結(jié) HashSet簡(jiǎn)介

HashSet是一個(gè)沒(méi)有重復(fù)元素的集
HashSet可以存儲(chǔ)null元素,不保證元素插入順序;
HashSet線程不安全的(由于底層由HashMap實(shí)現(xiàn));

HashSet底層實(shí)現(xiàn)

HashSet底層采用HashMap存儲(chǔ)private transient HashMap map。HashSet存儲(chǔ)元素實(shí)際為TreeMap存儲(chǔ)的鍵值對(duì)為的key;,PRESENT為固定對(duì)象:private static final Object PRESENT = new Object();
由于HashMap中key不可重復(fù),從而實(shí)現(xiàn)HashSet元素不可重復(fù);

HashSet遍歷方式

HashSet支持迭代器和foreach兩種遍歷方式:

// 遍歷HashSet:迭代器實(shí)現(xiàn)
Iterator iter = set.iterator();
while (iter.hasNext()) {
    System.out.println(iter.next());
    
}

// 遍歷HashSet:foreach實(shí)現(xiàn)
for (Integer i : set) {
    System.out.println(i);
}
TreeSet小結(jié)

TreeSet是一個(gè)有序集,基于TreeMap實(shí)現(xiàn),是線程不安全的;

TreeSet有序性實(shí)現(xiàn)

TreeSet支持兩種兩種排序方式,通過(guò)不同構(gòu)造器調(diào)用實(shí)現(xiàn)

自然排序:

    public TreeSet() {
        // 新建TreeMap,自然排序
        this(new TreeMap());
    }

Comparator排序:

    public TreeSet(Comparator comparator) {
        // 新建TreeMap,傳入自定義比較器comparator
        this(new TreeMap<>(comparator));
    }
TreeSet底層實(shí)現(xiàn)

TreeSet底層采用TreeMap存儲(chǔ),構(gòu)造器啟動(dòng)時(shí)新建TreeMap。TreeSet存儲(chǔ)元素實(shí)際為TreeMap存儲(chǔ)的鍵值對(duì)為的key;,PRESENT為固定對(duì)象:private static final Object PRESENT = new Object()

TreeSet遍歷方式

TreeSet支持正向/反向迭代器遍歷和foreach遍歷

// 順序TreeSet:迭代器實(shí)現(xiàn)
Iterator iter = set.iterator();
while (iter.hasNext()) {
    System.out.println(iter.next());
    
}

// 順序遍歷TreeSet:foreach實(shí)現(xiàn)
for (Integer i : set) {
    System.out.println(i);
}

// 逆序遍歷TreeSet:反向迭代器實(shí)現(xiàn)
Iterator iter1 = set.descendingIterator();
while (iter1.hasNext()) {
    System.out.println(iter1.next());
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/67007.html

相關(guān)文章

  • java 編程思想 - Chapter11&amp;Chapter17- 不同容器之間的比較

    摘要:中所有方法都是直接或者間接同步的,所以是線程安全的即多個(gè)線程操作同一個(gè)對(duì)象時(shí)是線程安全的,但是只有一個(gè)線程操作時(shí)考慮到同步控制會(huì)耗費(fèi)系統(tǒng)資源所以效率低。中的所有方法都是線程非同步的,但有多個(gè)線程操作時(shí)是不安全的。 雖是讀書(shū)筆記,但是如轉(zhuǎn)載請(qǐng)注明出處http://segmentfault.com/blog/exploring/ ..拒絕伸手復(fù)制黨 容器之間的區(qū)別通常歸結(jié)為:由什么在背...

    imtianx 評(píng)論0 收藏0
  • Java編程基礎(chǔ)19——Map集合&amp;斗地主案例

    摘要:使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換。將集合排序使用二分搜索法搜索指定列表,以獲得指定對(duì)象根據(jù)元素的自然順序,返回給定的最大元素。 1_Map集合概述和特點(diǎn) A:Map接口概述 查看API可以知道: 將鍵映射到值的對(duì)象 一個(gè)映射不能包含重復(fù)的鍵 每個(gè)鍵最多只能映射到一個(gè)值 B:Map接口和Collection接口的不同 Map是雙列的,Collection是單列的 Map...

    ygyooo 評(píng)論0 收藏0
  • java集合-Set

    摘要:集合判斷兩個(gè)元素的標(biāo)準(zhǔn)是兩個(gè)對(duì)象通過(guò)方法比較相等,并且兩個(gè)對(duì)象的方法返回值也相等。的集合元素也是有序的,以枚舉值在類內(nèi)的定義順序來(lái)決定集合元素的順序。是所有實(shí)現(xiàn)類中性能最好的,但它只能保存同一個(gè)枚舉類的枚舉值作為集合元素。 Set集合通常不能記住元素的添加順序。Set不允許包含重復(fù)的元素。 Set集合不允許包含相同的元素,如果試圖把兩個(gè)相同的元素加入同一個(gè)Set集合中,則添加操作...

    xavier 評(píng)論0 收藏0
  • List&amp;Map&amp;Set的操作和遍歷

    摘要:的操作和遍歷的三大集合即。的實(shí)現(xiàn)類原理比較簡(jiǎn)單,比較復(fù)雜,而其實(shí)是基于的一種實(shí)現(xiàn)。 List&Map&Set的操作和遍歷 Java的三大集合即:Set、List、Map。 Set:代表無(wú)序、不可重復(fù)的集合,常用的有HashSet(哈希表實(shí)現(xiàn))、TreeSet(紅黑樹(shù)實(shí)現(xiàn)); List:代表有序、可以重復(fù)的集合,比較常用的有ArrayList(數(shù)組實(shí)現(xiàn))、LinkedList(鏈表實(shí)現(xiàn)...

    lavnFan 評(píng)論0 收藏0
  • java集合類

    摘要:集合類簡(jiǎn)介集合類包含在包下集合類存放的是對(duì)象的引用,而非對(duì)象本身。集合類型主要分為集,列表,映射。返回此有序集合中當(dāng)前第一個(gè)最小的元素。集合中元素被訪問(wèn)的順序取決于集合的類型。 Java集合類 1.簡(jiǎn)介: java集合類包含在java.util包下集合類存放的是對(duì)象的引用,而非對(duì)象本身。集合類型主要分為Set(集),List(列表),Map(映射)。 1.1 java集合類圖 sho...

    Pluser 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

CollinPeng

|高級(jí)講師

TA的文章

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