クラスEnumSet<E extends Enum<E>>

型パラメータ:
E - このセットで保持される要 の列挙型
すべての実装されたインタフェース:
Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>

public abstract sealed class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable
列挙型と一緒に使用するための特殊なSet実装です。 enumセット内の要 はすべて、セットの作成時に、指定された単一のenum型から明示的または暗黙的に生成される必要があります。 enumセットは、内部ではビット・ベクトルとして表現されます。 この表現は、非常に簡潔かつ効率的です。 このクラスの 域および時間パフォーマンスは、従来のintベースの"ビット・フラグ。"に代わる高品質でタイプ・セーフなクラスとして使用できる十分な大きさである必要があります バルク操作でも、(containsAllretainAllなど)の引数が列挙セットでもある 合は、非常に高速に実行する必要があります。

iteratorメソッドから返されたイテレータは、「自然秩序」 (列挙定数が宣言される 序)の要 を走査します。 返されるイテレータは、弱一貫性を保持します。これがConcurrentModificationExceptionをスローすることはありません。また、反復の進行中に実行されるセットへの変更の影響を表示することも、非表示にすることも可能です。

null要 は許可されません。 null要 を挿入しようとすると、NullPointerExceptionがスローされます。 た し、null要 の存在をテストしたり、削除を試みる 合は正常に機能します。

ほとんどのコレクション実装と同様に、EnumSetは同期されません。 複数のスレッドが並行してenumセットにアクセスし、それらのスレッドの少なくとも1つがセットを変更する 合には、外部で同期をとる必要があります。 通常、これは、enumセットを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。 そのようなオブジェクトが存在しない 合は、Collections.synchronizedSet(java.util.Set<T>)メソッドを使用してセットを「ラップ」する必要があります。 これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。

 Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
 

実装にあたってのノート: 基本のオペレーションはすべて一定時間に実行されます。 これらは通常、HashSetの対応するオペレーションよりもずっと高速に動作します(た し保証外)。 引数もenumセットであれば、一括オペレーションでさえ一定時間に実行されます。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.5
関連 目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static <E extends Enum<E>>
    EnumSet<E>
    allOf(Class<E> elementType)
    指定された要 型のすべての要 を含むenumセットを作成します。
    このセットのコピーを返します。
    static <E extends Enum<E>>
    EnumSet<E>
    指定されたenumセットと同じ要 型を使用してenumセットを作成します。最初は、指定されたセットに含まれないこの型の要 がすべて含められます。
    static <E extends Enum<E>>
    EnumSet<E>
    指定されたコレクションから初期化されたenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    指定されたenumセットと同じ要 型を使用して、enumセットを作成します。最初は、同じ要 を含むenumセットを作成します(同じ要 が存在する 合)。
    static <E extends Enum<E>>
    EnumSet<E>
    noneOf(Class<E> elementType)
    指定された要 型を使用して空のenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E e)
    指定された要 を最初に含むenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E e1, E e2)
    指定された要 が最初に含まれるenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E first, E... rest)
    指定された要 が最初に含まれるenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E e1, E e2, E e3)
    指定された要 が最初に含まれるenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E e1, E e2, E e3, E e4)
    指定された要 が最初に含まれるenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    of(E e1, E e2, E e3, E e4, E e5)
    指定された要 が最初に含まれるenumセットを作成します。
    static <E extends Enum<E>>
    EnumSet<E>
    range(E from, E to)
    指定された2つの端点により定義される範囲内の要 すべてを最初に含むenumセットを作成します。

    クラスjava.util.AbstractSetで宣言されたメソッド

    equals, hashCode, removeAll

    クラスjava.util.AbstractCollectionで宣言されたメソッド

    add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString

    クラスjava.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェースjava.util.Collectionで宣言されたメソッド

    parallelStream, removeIf, stream, toArray

    インタフェースjava.lang.Iterableで宣言されたメソッド

    forEach

    インタフェースjava.util.Setで宣言されたメソッド

    add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray
  • メソッドの詳細

    • noneOf

      public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
      指定された要 型を使用して空のenumセットを作成します。
      型パラメータ:
      E - セット内の要 のクラス
      パラメータ:
      elementType - このenumセット用の要 型のクラス・オブジェクト
      戻り値:
      指定された型の空のenumセット。
      スロー:
      NullPointerException - elementTypeがnullの 合
    • allOf

      public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
      指定された要 型のすべての要 を含むenumセットを作成します。
      型パラメータ:
      E - セット内の要 のクラス
      パラメータ:
      elementType - このenumセット用の要 型のクラス・オブジェクト
      戻り値:
      指定された型のすべての要 を含むenumセット。
      スロー:
      NullPointerException - elementTypeがnullの 合
    • copyOf

      public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
      指定されたenumセットと同じ要 型を使用して、enumセットを作成します。最初は、同じ要 を含むenumセットを作成します(同じ要 が存在する 合)。
      型パラメータ:
      E - セット内の要 のクラス
      パラメータ:
      s - このenumセットの初期化元のenumセット
      戻り値:
      指定されたenumセットのコピー。
      スロー:
      NullPointerException - sがnullである 合
    • copyOf

      public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
      指定されたコレクションから初期化されたenumセットを作成します。 指定したコレクションがEnumSetインスタンスの 合、この静的ファクトリ・メソッドはcopyOf(EnumSet)と同じように動作します。 それ以外の 合は、指定されたコレクションが1つ以上の要 を含んでいる必要があります(新規enumセットの要 型を判定するため)。
      型パラメータ:
      E - コレクション内の要 のクラス
      パラメータ:
      c - このenumセットの初期化元のコレクション
      戻り値:
      指定されたコレクションから初期化されたenumセット。
      スロー:
      IllegalArgumentException - cEnumSetインスタンスではなく、要 を含まない 合
      NullPointerException - cがnullである 合
    • complementOf

      public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
      指定されたenumセットと同じ要 型を使用してenumセットを作成します。最初は、指定されたセットに含まれないこの型の要 がすべて含められます。
      型パラメータ:
      E - 列挙セット内の要 のクラス
      パラメータ:
      s - このenumセットの初期化に使用する補数を保持するenumセット
      戻り値:
      このセット内の指定されたセットの補数
      スロー:
      NullPointerException - sがnullである 合
    • of

      public static <E extends Enum<E>> EnumSet<E> of(E e)
      指定された要 を最初に含むenumセットを作成します。 このメソッドのオーバーロードは、1 - 5つの要 でenumセットを初期化するために存在します。 6番目には可変引数機能を使用するオーバーロードが行われます。 このオーバーロードでは、最初に任意の数の要 が含まれたenumセットを作成するために実行される可能性がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - 指定された要 とセットのクラス
      パラメータ:
      e - このセットが最初に含む要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - eがnullの 合
    • of

      public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
      指定された要 が最初に含まれるenumセットを作成します。 このメソッドのオーバーロードは、1 - 5つの要 でenumセットを初期化するために存在します。 6番目には可変引数機能を使用するオーバーロードが行われます。 このオーバーロードでは、最初に任意の数の要 が含まれたenumセットを作成するために実行される可能性がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      e1 - このセットが最初に含む要 
      e2 - このセットが最初に含む別の要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - パラメータがnullの 合
    • of

      public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
      指定された要 が最初に含まれるenumセットを作成します。 このメソッドのオーバーロードは、1 - 5つの要 でenumセットを初期化するために存在します。 6番目には可変引数機能を使用するオーバーロードが行われます。 このオーバーロードでは、最初に任意の数の要 が含まれたenumセットを作成するために実行される可能性がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      e1 - このセットが最初に含む要 
      e2 - このセットが最初に含む別の要 
      e3 - このセットが最初に含む別の要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - パラメータがnullの 合
    • of

      public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
      指定された要 が最初に含まれるenumセットを作成します。 このメソッドのオーバーロードは、1 - 5つの要 でenumセットを初期化するために存在します。 6番目には可変引数機能を使用するオーバーロードが行われます。 このオーバーロードでは、最初に任意の数の要 が含まれたenumセットを作成するために実行される可能性がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      e1 - このセットが最初に含む要 
      e2 - このセットが最初に含む別の要 
      e3 - このセットが最初に含む別の要 
      e4 - このセットが最初に含む別の要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - パラメータがnullの 合
    • of

      public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
      指定された要 が最初に含まれるenumセットを作成します。 このメソッドのオーバーロードは、1 - 5つの要 でenumセットを初期化するために存在します。 6番目には可変引数機能を使用するオーバーロードが行われます。 このオーバーロードでは、最初に任意の数の要 が含まれたenumセットを作成するために実行される可能性がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      e1 - このセットが最初に含む要 
      e2 - このセットが最初に含む別の要 
      e3 - このセットが最初に含む別の要 
      e4 - このセットが最初に含む別の要 
      e5 - このセットが最初に含む別の要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - パラメータがnullの 合
    • of

      @SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
      指定された要 が最初に含まれるenumセットを作成します。 そのパラメータ・リストが可変引数機能を使用するこのファクトリは、最初に任意の数の要 を含むenumセットを作成するために使用される 合がありますが、可変引数を使用しないオーバーロードより低速に実行される傾向があります。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      first - このセットが最初に含む要 
      rest - セットが最初に含む残りの要 
      戻り値:
      指定された要 を最初に含むenumセット
      スロー:
      NullPointerException - 指定した要 のいずれかがnullの 合、またはrestがnullの 合
    • range

      public static <E extends Enum<E>> EnumSet<E> range(E from, E to)
      指定された2つの端点により定義される範囲内の要 すべてを最初に含むenumセットを作成します。 返されるセットには、端点自身が含まれます。これは、同一であってもかまいませんが、 序が乱れてはいけません。
      型パラメータ:
      E - パラメータ要 とセットのクラス
      パラメータ:
      from - 範囲内の最初の要 
      to - 範囲内の最後の要 
      戻り値:
      指定された2つの端点で定義された範囲内のすべての要 を最初に含むenumセット
      スロー:
      NullPointerException - fromまたはtoがnullの 合
      IllegalArgumentException - from.compareTo(to)> 0の 合
    • clone

      public EnumSet<E> clone()
      このセットのコピーを返します。
      オーバーライド:
      clone、クラスObject
      戻り値:
      このセットのコピー
      関連 目: