Java集合之EnumSet
生活随笔
收集整理的這篇文章主要介紹了
Java集合之EnumSet
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自??Java集合之EnumSet
?
EnumSet
EnumSet 是一個專為枚舉設計的集合類,EnumSet中的所有元素都必須是指定枚舉類型的枚舉值,該枚舉類型在創建EnumSet時顯式或隱式地指定。
方法介紹:
- EnumSet allOf(Class elementType): 創建一個包含指定枚舉類里所有枚舉值的EnumSet集合。
- EnumSet complementOf(EnumSet e): 創建一個其元素類型與指定EnumSet里元素類型相同的EnumSet集合,新EnumSet集合包含原EnumSet集合所不包含的、此類枚舉類剩下的枚舉值(即新EnumSet集合和原EnumSet集合的集合元素加起來是該枚舉類的所有枚舉值)。
- EnumSet copyOf(Collection c): 使用一個普通集合來創建EnumSet集合。
- EnumSet copyOf(EnumSet e): 創建一個指定EnumSet具有相同元素類型、相同集合元素的EnumSet集合。
- EnumSet noneOf(Class elementType): 創建一個元素類型為指定枚舉類型的空EnumSet。
- EnumSet of(E first,E…rest): 創建一個包含一個或多個枚舉值的EnumSet集合,傳入的多個枚舉值必須屬于同一個枚舉類。
- EnumSet range(E from,E to): 創建一個包含從from枚舉值到to枚舉值范圍內所有枚舉值的EnumSet集合。
示例代碼:
package com.collection;import java.util.EnumSet;public class EnumSetTest {public static void main(String[] args) {//1.創建一個包含Session(枚舉類)里所有枚舉值的EnumSet集合EnumSet e1 = EnumSet.allOf(Session.class);System.out.println(e1);//[SPRING, SUMMER, FAIL, WINTER]//2.創建一個空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. 以指定枚舉值創建EnumSet集合EnumSet e3 = EnumSet.of(Session.SPRING,Session.FAIL);System.out.println(e3);//[SPRING, FAIL]//5.創建一個包含從from枚舉值到to枚舉值范圍內所有枚舉值的EnumSet集合。EnumSet e4 = EnumSet.range(Session.SPRING,Session.FAIL);System.out.println(e4);//[SPRING, SUMMER, FAIL]//6.創建一個其元素類型與指定EnumSet里元素類型相同的EnumSet集合,// 新EnumSet集合包含原EnumSet集合所不包含的枚舉值EnumSet e5 = EnumSet.complementOf(e4);System.out.println(e5);//[WINTER]} }//創建一個枚舉 enum Session{SPRING,SUMMER,FAIL,WINTER }注意:
除此之外還可以復制另一個EnumSet集合中的所有元素來創建新的EnumSet集合,或者復制另一個Collection集合中的所有元素來創建新的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]注意:當復制Collection集合中所有元素來創建新的EnumSet集合時,要求Collection集合中的所有元素必須是同一個枚舉類的枚舉值。
錯誤示例:
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.?
得到即是完結,快樂的精髓在于過程。
?
總結
以上是生活随笔為你收集整理的Java集合之EnumSet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想电脑配置推荐2021清单(联想电脑配
- 下一篇: Java阻塞队列ArrayBlockin