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
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray
parallelStream, removeIf, stream
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
E
- セット内の要素のクラスelementType
- このenumセット用の要素型のクラス・オブジェクトNullPointerException
- elementTypeがnullの場合public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
E
- セット内の要素のクラスelementType
- このenumセット用の要素型のクラス・オブジェクトNullPointerException
- elementTypeがnullの場合public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
E
- セット内の要素のクラスs
- このenumセットの初期化元のenumセットNullPointerException
- sがnullの場合public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
copyOf(EnumSet)
と同じ動作をします。それ以外の場合は、指定されたコレクションが1つ以上の要素を含んでいる必要があります(新規enumセットの要素型を判定するため)。E
- コレクション内の要素のクラスc
- このenumセットの初期化元のコレクションIllegalArgumentException
- cがEnumSetインスタンスではなく、要素を含まない場合NullPointerException
- cがnullの場合public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
E
- enumセット内の要素のクラスs
- このenumセットの初期化に使用する補数を保持するenumセットNullPointerException
- sがnullの場合public static <E extends Enum<E>> EnumSet<E> of(E e)
E
- 指定された要素およびセットの要素のクラスe
- このセットが最初に含む要素NullPointerException
- eがnullである場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
E
- パラメータ要素およびセットの要素のクラスe1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素NullPointerException
- パラメータがnullの場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
E
- パラメータ要素およびセットの要素のクラスe1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素e3
- このセットが最初に含む別の要素NullPointerException
- パラメータがnullの場合public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
E
- パラメータ要素およびセットの要素のクラス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)
E
- パラメータ要素およびセットの要素のクラスe1
- このセットが最初に含む要素e2
- このセットが最初に含む別の要素e3
- このセットが最初に含む別の要素e4
- このセットが最初に含む別の要素e5
- このセットが最初に含む別の要素NullPointerException
- パラメータがnullの場合@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
E
- パラメータ要素およびセットの要素のクラスfirst
- このセットが最初に含む要素rest
- セットが最初に含む残りの要素NullPointerException
- 指定された要素のいずれかがnullまたはrestがnullの場合public static <E extends Enum<E>> EnumSet<E> range(E from, E to)
E
- パラメータ要素およびセットの要素のクラスfrom
- 範囲内の最初の要素to
- 範囲内の最後の要素NullPointerException
- from
またはto
がnullの場合IllegalArgumentException
- from.compareTo(to)> 0
の場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.