Java EnumSet 類



介紹

Java EnumSet 類是一個專門為列舉型別使用的 Set 實現。以下是關於 EnumSet 的重要要點:

  • EnumSet 中的所有元素都必須來自建立集合時顯式或隱式指定的單個列舉型別。

  • EnumSet 在內部表示為位向量。

  • EnumSet 不是同步的。如果多個執行緒同時訪問 EnumSet,並且至少一個執行緒修改了該集合,則應在外部進行同步。

類宣告

以下是java.util.EnumSet類的宣告:

public abstract class EnumSet<E extends Enum<E>>
   extends AbstractSet<E>
   implements Cloneable, Serializable

類方法

序號 方法及描述
1 static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)

此方法建立一個包含指定元素型別中所有元素的列舉集。

2 EnumSet<E> clone()

此方法返回此集合的副本。

3 static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)

此方法建立一個與指定的列舉集具有相同元素型別的列舉集,最初包含此型別中未包含在指定集合中的所有元素。

4 static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)

此方法建立一個從指定集合初始化的列舉集。

5 static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)

此方法建立一個與指定的列舉集具有相同元素型別的列舉集,最初包含相同的元素(如果有)。

6 static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)

此方法建立一個具有指定元素型別的空列舉集。

7 static <E extends Enum<E>> EnumSet<E> of(E e)

此方法建立一個最初包含指定元素的列舉集。

8 static <E extends Enum<E>> EnumSet<E> range(E from, E to)

此方法建立一個最初包含由兩個指定端點定義的範圍內的所有元素的列舉集。

繼承的方法

此類繼承自以下類的方法:

  • java.util.AbstractSet
  • java.util.AbstractCollection
  • java.util.Object
  • java.util.Set

建立 EnumSet 示例

以下示例演示了 Java EnumSet of(E) 方法的使用,以填充 EnumSet 例項。我們建立了一個列舉 Numbers。然後使用列舉值建立一個 EnumSet 例項,並列印生成的 enumSet。

package com.tutorialspoint;

import java.util.EnumSet;

public class EnumSetDemo {

   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };

   public static void main(String[] args) {

      // create a set that contains an enum
      EnumSet<Numbers> set = EnumSet.of(Numbers.ONE);

      // print set
      System.out.println("Set:" + set);
   }
}

讓我們編譯並執行上述程式,這將產生以下結果:

Set:[ONE]
廣告