Java集合之EnumSet
生活随笔
收集整理的這篇文章主要介紹了
Java集合之EnumSet
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載自??Java集合之EnumSet
?
EnumSet
EnumSet 是一個(gè)專為枚舉設(shè)計(jì)的集合類,EnumSet中的所有元素都必須是指定枚舉類型的枚舉值,該枚舉類型在創(chuàng)建EnumSet時(shí)顯式或隱式地指定。
方法介紹:
- EnumSet allOf(Class elementType): 創(chuàng)建一個(gè)包含指定枚舉類里所有枚舉值的EnumSet集合。
- EnumSet complementOf(EnumSet e): 創(chuàng)建一個(gè)其元素類型與指定EnumSet里元素類型相同的EnumSet集合,新EnumSet集合包含原EnumSet集合所不包含的、此類枚舉類剩下的枚舉值(即新EnumSet集合和原EnumSet集合的集合元素加起來(lái)是該枚舉類的所有枚舉值)。
- EnumSet copyOf(Collection c): 使用一個(gè)普通集合來(lái)創(chuàng)建EnumSet集合。
- EnumSet copyOf(EnumSet e): 創(chuàng)建一個(gè)指定EnumSet具有相同元素類型、相同集合元素的EnumSet集合。
- EnumSet noneOf(Class elementType): 創(chuàng)建一個(gè)元素類型為指定枚舉類型的空EnumSet。
- EnumSet of(E first,E…rest): 創(chuàng)建一個(gè)包含一個(gè)或多個(gè)枚舉值的EnumSet集合,傳入的多個(gè)枚舉值必須屬于同一個(gè)枚舉類。
- EnumSet range(E from,E to): 創(chuàng)建一個(gè)包含從from枚舉值到to枚舉值范圍內(nèi)所有枚舉值的EnumSet集合。
示例代碼:
package com.collection;import java.util.EnumSet;public class EnumSetTest {public static void main(String[] args) {//1.創(chuàng)建一個(gè)包含Session(枚舉類)里所有枚舉值的EnumSet集合EnumSet e1 = EnumSet.allOf(Session.class);System.out.println(e1);//[SPRING, SUMMER, FAIL, WINTER]//2.創(chuàng)建一個(gè)空EnumSetEnumSet e2 = EnumSet.noneOf(Session.class);System.out.println(e2);//[]//3. add()空EnumSet集合中添加枚舉元素e2.add(Session.SPRING);e2.add(Session.SUMMER);System.out.println(e2);//[SPRING, SUMMER]//4. 以指定枚舉值創(chuàng)建EnumSet集合EnumSet e3 = EnumSet.of(Session.SPRING,Session.FAIL);System.out.println(e3);//[SPRING, FAIL]//5.創(chuàng)建一個(gè)包含從from枚舉值到to枚舉值范圍內(nèi)所有枚舉值的EnumSet集合。EnumSet e4 = EnumSet.range(Session.SPRING,Session.FAIL);System.out.println(e4);//[SPRING, SUMMER, FAIL]//6.創(chuàng)建一個(gè)其元素類型與指定EnumSet里元素類型相同的EnumSet集合,// 新EnumSet集合包含原EnumSet集合所不包含的枚舉值EnumSet e5 = EnumSet.complementOf(e4);System.out.println(e5);//[WINTER]} }//創(chuàng)建一個(gè)枚舉 enum Session{SPRING,SUMMER,FAIL,WINTER }注意:
除此之外還可以復(fù)制另一個(gè)EnumSet集合中的所有元素來(lái)創(chuàng)建新的EnumSet集合,或者復(fù)制另一個(gè)Collection集合中的所有元素來(lái)創(chuàng)建新的EnumSet集合。
示例:
Collection c = new HashSet();c.clear();c.add(Session.SPRING);c.add(Session.FAIL);EnumSet e6 = EnumSet.copyOf(c);System.out.println(e6);//[SPRING, FAIL]注意:當(dāng)復(fù)制Collection集合中所有元素來(lái)創(chuàng)建新的EnumSet集合時(shí),要求Collection集合中的所有元素必須是同一個(gè)枚舉類的枚舉值。
錯(cuò)誤示例:
c.add("Java");e6 = EnumSet.copyOf(c);//java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.EnumThings won are done; joy’s soul lies in the doing.?
得到即是完結(jié),快樂(lè)的精髓在于過(guò)程。
?
總結(jié)
以上是生活随笔為你收集整理的Java集合之EnumSet的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 联想电脑配置推荐2021清单(联想电脑配
- 下一篇: 宏基电脑配置在哪里看(宏基电脑配置)