クラス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(Set)メソッドを使用してセットをラップする必要があります。 これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。

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セットを作成します。

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

    equals, hashCode, removeAll
    修飾子と型
    メソッド
    説明
    boolean
    指定されたオブジェクトがセットと同じかどうかを比較します。
    int
    セットのハッシュ・コード値を返します。
    boolean
    このセットから、指定されたコレクションに含まれる要素をすべて削除します(オプションの操作)。

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

    add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString
    修飾子と型
    メソッド
    説明
    boolean
    add(E e)
    指定された要素がこのコレクションに格納されていることを保証します(オプションの操作)。
    boolean
    addAll(Collection<? extends E> c)
    指定されたコレクションのすべての要素をこのコレクションに追加します(オプションの操作)。
    void
    このコレクションからすべての要素を削除します(オプションの操作)。
    boolean
    このコレクションに指定した要素が含まれている場合は、trueを返します。
    boolean
    指定したコレクションのすべての要素がこのコレクションに含まれている場合、trueを返します。
    boolean
    このコレクションに要素がない場合にtrueを返します。
    abstract Iterator<E>
    このコレクション中の要素に関係するイテレータを返します。
    boolean
    指定された要素のインスタンスがこのコレクションにあれば、そのインスタンスをコレクションから1つ削除します(オプションの操作)。
    boolean
    このコレクションにおいて、指定されたコレクションに格納されている要素だけを保持します(オプションの操作)。
    このコレクションの要素がすべて格納されている配列を返します。
    <T> T[]
    toArray(T[] a)
    このコレクション内のすべての要素を保持する配列を返します。返される配列の実行時の型は、指定された配列の型です。
    このコレクションの文字列表現を返します。

    クラスオブジェクトで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

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

    parallelStream, removeIf, stream, toArray
    修飾子と型
    メソッド
    説明
    default Stream<E>
    このコレクションをソースとして、潜在的に並列のStreamを返します。
    default boolean
    removeIf(Predicate<? super E> filter)
    指定された述語(オプションの操作)を満たす、このコレクションのすべての要素を削除します。
    default Stream<E>
    このコレクションをソースとして使用して、逐次的なStreamを返します。
    default <T> T[]
    toArray(IntFunction<T[]> generator)
    指定されたgenerator関数を使用してこのコレクションのすべての要素を含む配列を返し、返された配列を割り当てます。

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

    forEach
    修飾子と型
    メソッド
    説明
    default void
    forEach(Consumer<? super E> action)
    Iterableの各要素に対して指定されたアクションを、すべての要素が処理されるか、アクションが例外をスローするまで実行します。

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

    add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray
    修飾子と型
    メソッド
    説明
    boolean
    add(E e)
    指定された要素がセット内になかった場合、セットに追加します(オプションの操作)。
    boolean
    addAll(Collection<? extends E> c)
    指定されたコレクションのすべての要素について、その要素がこのセット内にない場合、セットに追加します(オプションの操作)。
    void
    セットからすべての要素を削除します(オプションの操作)。
    boolean
    指定された要素がこのセットに含まれている場合にtrueを返します。
    boolean
    指定されたコレクションのすべての要素がこのセットに含まれている場合にtrueを返します。
    boolean
    このセットに要素が1つも含まれていない場合にtrueを返します。
    セット内の各要素についてのイテレータを返します。
    boolean
    指定された要素がセット内にあった場合、セットから削除します(オプションの操作)。
    boolean
    セット内の要素のうち、指定されたコレクション内にある要素だけを保持します(オプションの操作)。
    int
    セット内の要素数(そのカーディナリティ)を返します。
    default Spliterator<E>
    このセット内の要素に対するSpliteratorを作成します。
    セット内のすべての要素が格納されている配列を返します。
    <T> T[]
    toArray(T[] a)
    セット内のすべての要素を格納している配列を返します。返される配列の実行時の型は、指定された配列の型になります。
  • メソッドの詳細

    • 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
      戻り値:
      このセットのコピー
      関連項目: