摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器是一個(gè)專為枚舉設(shè)計(jì)的集合類,中所有值都必須是指定枚舉類型的枚舉值,該枚舉類型在創(chuàng)建時(shí)顯式或隱性的指定。集合不容許加入元素。
Java知識(shí)點(diǎn)總結(jié)(Java容器-EnumSet)
@(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet]
EnumSetEnumSet是一個(gè)專為枚舉設(shè)計(jì)的集合類 ,EnumSet中所有值都必須是指定枚舉類型的枚舉值,該枚舉類型在創(chuàng)建EnumSet時(shí)顯式或隱性的指定。EnumSet的集合元素也是有序的,EnumSet以枚舉值在Enum類內(nèi)的定義順序來決定集合元素的排序。
__EnumSet在內(nèi)部以位向量的形式存儲(chǔ)__,這種存儲(chǔ)形式非常緊湊、高效,因此EnumSet對(duì)象占用內(nèi)存很小,而且運(yùn)行效率很好。尤其是當(dāng)進(jìn)行批量操作(如調(diào)用containsAll和retainAll方法)時(shí),如其參數(shù)也是EnumSet集合,則該批量操作的執(zhí)行速度也非??臁?/p>
__EnumSet集合不容許加入null元素__。如果試圖插入null元素,EnumSet將會(huì)拋出NullPointerException異常。
EnumSet類沒有暴露任何構(gòu)造器來創(chuàng)建該類的實(shí)例,程序應(yīng)該通過它提供的靜態(tài)方法來創(chuàng)建EnumSet對(duì)象。
相關(guān)操作//1.0創(chuàng)建一個(gè)EnumSet集合,集合元素就是Season枚舉類的全部枚舉值 EnumSetes = EnumSet.allOf(Season.class); System.out.println(es);//輸出[SPRING, SUMMER, AUTUMN, WINTER] //2.0創(chuàng)建一個(gè)EnumSet空集合,指定其集合元素時(shí)Season類的枚舉值。 EnumSet es2 = EnumSet.noneOf(Season.class); System.out.println(es2);//輸出[] //2.1手動(dòng)添加兩個(gè)元素 es2.add(Season.AUTUMN); es2.add(Season.WINTER); System.out.println(es2);//輸出[AUTUMN, WINTER] //3.0以指定枚舉值創(chuàng)建EnumSet集合 EnumSet es3 = EnumSet.of(Season.SPRING, Season.SUMMER); System.out.println(es3);//輸出[SPRING, SUMMER] //4.0創(chuàng)建包含從Season.SPRING枚舉值,到Season.AUTUMN枚舉值范圍內(nèi)所有枚舉值的EnumSet集合。 EnumSet es4 = EnumSet.range(Season.SPRING, Season.AUTUMN); System.out.println(es4); //輸出[SPRING, SUMMER, AUTUMN] //5.0新創(chuàng)建的EnumSet集合元素和es4集合的元素有相同類型,es5的集合元素 + es4的集合元素 = Season 的所有枚舉值 EnumSet es5 = EnumSet.complementOf(es4); System.out.println(es5); //輸出[WINNER] //6.0復(fù)制Collection集合中所有元素來創(chuàng)建EnumSet集合。 Collection c = new HashSet (); c.add(Season.AUTUMN); c.add(Season.WINTER); EnumSet es6 = EnumSet.copyOf(c); System.out.println(es6); //輸出[AUTUMN, WINTER]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69644.html
摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器是一種不包括重復(fù)元素的。由于接口的特殊性,所有傳入集合中的元素必須不同。集合判斷兩個(gè)對(duì)象是否相同,是使用方法,而不是使用運(yùn)算符的。只能存儲(chǔ),所以只會(huì)在存儲(chǔ)的情況下使用。 Java知識(shí)點(diǎn)總結(jié)(Java容器-Set) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet] Set Set是一種不包括重復(fù)元素的Col...
摘要:說到復(fù)盤基礎(chǔ),并不是所有的都會(huì)復(fù)盤,沒那個(gè)時(shí)間更沒那個(gè)必要。比如,一些基礎(chǔ)的語法以及條件語句,極度簡(jiǎn)單。思前想后,我覺得整個(gè)計(jì)劃應(yīng)該從集合開始,而復(fù)盤的方式就是讀源碼。通常,隊(duì)列不允許隨機(jī)訪問隊(duì)列中的元素。 ?showImg(https://segmentfault.com/img/remote/1460000020029737?w=1080&h=711); 老讀者都知道,我是自學(xué)轉(zhuǎn)行...
摘要:集合判斷兩個(gè)元素的標(biāo)準(zhǔn)是兩個(gè)對(duì)象通過方法比較相等,并且兩個(gè)對(duì)象的方法返回值也相等。的集合元素也是有序的,以枚舉值在類內(nèi)的定義順序來決定集合元素的順序。是所有實(shí)現(xiàn)類中性能最好的,但它只能保存同一個(gè)枚舉類的枚舉值作為集合元素。 Set集合通常不能記住元素的添加順序。Set不允許包含重復(fù)的元素。 Set集合不允許包含相同的元素,如果試圖把兩個(gè)相同的元素加入同一個(gè)Set集合中,則添加操作...
摘要:當(dāng)復(fù)制集合中的所有元素來創(chuàng)建新的集合時(shí),要求集合中的所有元素必須是同一個(gè)枚舉類的枚舉值各實(shí)現(xiàn)類的性能分析的性能總比好,特別是最常用的添加查詢?cè)氐炔僮鳌R驗(yàn)樾枰~外的紅黑樹算法來維護(hù)集合元素的次序。在創(chuàng)建時(shí)進(jìn)行,以防對(duì)集合的意外非同步訪問 HashSet 大多時(shí)候使用Set集合時(shí)就是使用HashSet實(shí)現(xiàn)類。HashSet按Hash算法來存儲(chǔ)集合中的元素,因此具有很好的存取和查找性能 ...
摘要:一自定義收集器陳楊將集合轉(zhuǎn)換為集合存放相同元素二自定義收集器陳楊將學(xué)生對(duì)象按照存放從中間容器數(shù)據(jù)類型轉(zhuǎn)換為結(jié)果類型數(shù)據(jù)類型一致若不一致拋出類型轉(zhuǎn)換異常對(duì)中間容器數(shù)據(jù)結(jié)果類型進(jìn)行強(qiáng)制類型轉(zhuǎn)換多個(gè)線程同時(shí)操作同一個(gè)容器并行多線 一、自定義SetCustomCollector收集器 package com.java.design.Stream.CustomCollector; impor...
閱讀 2284·2021-11-16 11:44
閱讀 652·2019-08-30 15:55
閱讀 3287·2019-08-30 15:52
閱讀 3625·2019-08-30 15:43
閱讀 2208·2019-08-30 11:21
閱讀 446·2019-08-29 12:18
閱讀 1959·2019-08-26 18:15
閱讀 483·2019-08-26 10:32