public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable
Set
実装です。enum セット内の要素はすべて、セットの作成時に、指定された単一の enum 型から明示的または暗黙的に生成される必要があります。enum セットは、内部ではビットベクトルとして表現されます。この表現は、非常に簡潔かつ効率的です。このクラスの操作に必要な領域や時間は、従来の int ベースの「ビットフラグ」に対する高品質かつ型保証された代替として十分に使用可能です。引数も enum セットであれば、一括オペレーション (containsAll や retainAll など) でさえ非常に高速に実行できます。
iterator メソッドにより返されるイテレータは、要素を自然順序 (enum 定数の宣言された順序) に従ってトラバースします。返されるイテレータは、弱一貫性を保持します。これが 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 のメンバーです。
EnumMap
修飾子と型 | メソッドと説明 |
---|---|
static <E extends Enum<E>> |
allOf(Class<E> elementType)
指定された要素型のすべての要素を含む enum セットを作成します。
|
EnumSet<E> |
clone()
このセットの複製を返します。
|
static <E extends Enum<E>> |
complementOf(EnumSet<E> s)
指定された enum セットと同じ要素型を使用して enum セットを作成します。最初は、指定されたセットに含まれないこの型の要素がすべて含められます。
|
static <E extends Enum<E>> |
copyOf(Collection<E> c)
指定されたコレクションから初期化された enum セットを作成します。
|
static <E extends Enum<E>> |
copyOf(EnumSet<E> s)
指定された enum セットと同じ要素型を使用して、enum セットを作成します。最初は、同じ要素を含む enum セットを作成します (同じ要素が存在する場合)。
|
static <E extends Enum<E>> |
noneOf(Class<E> elementType)
指定された要素型を使用して空の enum セットを作成します。
|
static <E extends Enum<E>> |
of(E e)
指定された要素を最初に含む enum セットを作成します。
|
static <E extends Enum<E>> |
of(E first, E... rest)
指定された要素が最初に含まれる enum セットを作成します。
|
static <E extends Enum<E>> |
of(E e1, E e2)
指定された要素が最初に含まれる enum セットを作成します。
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3)
指定された要素が最初に含まれる enum セットを作成します。
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3, E e4)
指定された要素が最初に含まれる enum セットを作成します。
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3, E e4, E e5)
指定された要素が最初に含まれる enum セットを作成します。
|
static <E extends Enum<E>> |
range(E from, E to)
指定された 2 つの端点により定義される範囲内の要素すべてを最初に含む enum セットを作成します。
|
equals, hashCode, removeAll
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
elementType
- この enum セット用の要素型のクラスオブジェクトNullPointerException
- elementType が null の場合public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
elementType
- この enum セット用の要素型のクラスオブジェクトNullPointerException
- elementType が null の場合public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
s
- この enum セットの初期化元の enum セットNullPointerException
- s が null の場合public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
copyOf(EnumSet)
と同じ動作をします。それ以外の場合は、指定されたコレクションが 1 つ以上の要素を含んでいる必要があります (新規 enum セットの要素型を判定するため)。c
- この enum セットの初期化元のコレクションIllegalArgumentException
- c が EnumSet インスタンスではなく、要素を含まない場合NullPointerException
- c が null の場合public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
s
- この enum セットの初期化に使用する補数を保持する enum セットNullPointerException
- s が null の場合public static <E extends Enum<E>> EnumSet<E> of(E e)
e
- このセットが最初に含む要素NullPointerException
- e が null である場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
e1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素NullPointerException
- パラメータが null の場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
e1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素e3
- このセットが最初に含む別の要素NullPointerException
- パラメータが null の場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
e1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素e3
- このセットが最初に含む別の要素e4
- このセットが最初に含む別の要素NullPointerException
- パラメータが null の場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
e1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素e3
- このセットが最初に含む別の要素e4
- このセットが最初に含む別の要素e5
- このセットが最初に含む別の要素NullPointerException
- パラメータが null の場合@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
first
- このセットが最初に含む要素rest
- セットが最初に含む残りの要素NullPointerException
- 指定された要素のいずれかが null または rest が null の場合public static <E extends Enum<E>> EnumSet<E> range(E from, E to)
from
- 範囲内の最初の要素to
- 範囲内の最後の要素NullPointerException
- from
または to
が null の場合IllegalArgumentException
- from.compareTo(to) > 0
の場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.