|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.EnumSet<E>
public abstract class EnumSet<E extends Enum<E>>
enum 型で使用するための特殊な Set
実装です。enum セット内の要素はすべて、セットの作成時に、指定された単一の enum 型から明示的または暗黙的に生成される必要があります。enum セットは、内部ではビットベクトルとして表現されます。この表現は、非常に簡潔かつ効率的です。このクラスの操作に必要な領域や時間は、従来の int ベースの「ビットフラグ」に対する高品質かつ型保証された代替として十分に使用可能です。引数も enum セットであれば、一括オペレーション (containsAll や retainAll など) でさえ非常に高速に実行できます。
iterator メソッドにより返される反復子は、要素を「自然順序」(enum 定数の宣言された順序) に従ってトラバースします。返される反復子は、「弱一貫性」を保持します。これらが ConcurrentModificationException
をスローすることはありません。 また、反復の進行中に実行されるセットへの変更の影響を表示することも、非表示にすることも可能です。
null 要素は許可されません。null 要素を挿入しようとすると、NullPointerException
がスローされます。ただし、null 要素の存在をテストしたり、削除を試みる場合は正常に機能します。
大半のコレクション実装と同様、EnumSet は同期されません。複数のスレッドが同時に enum セットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合には、外部で同期をとる必要があります。通常、これは、enum セットを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。この種のオブジェクトがない場合には、Collections.synchronizedSet(java.util.Set
メソッドを使用してセットを「ラップ」する必要があります。これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
実装上の注意:基本のオペレーションはすべて一定時間に実行されます。これらは通常、HashSet
の対応するオペレーションよりもずっと高速 (ただし保証外) に動作します。引数も enum セットであれば、一括オペレーションでさえ一定時間に実行されます。
このクラスは、Java Collections Framework のメンバーです。
EnumMap
メソッドの概要 | ||
---|---|---|
static
|
allOf(Class<E> elementType)
指定された要素型のすべての要素を含む enum セットを作成します。 |
|
EnumSet<E> |
clone()
このセットの複製を返します。 |
|
static
|
complementOf(EnumSet<E> s)
指定された enum セットと同じ要素型を使用して enum セットを作成します。 |
|
static
|
copyOf(Collection<E> c)
指定されたコレクションから初期化された enum セットを作成します。 |
|
static
|
copyOf(EnumSet<E> s)
指定された enum セットと同じ要素型を使用して、enum セットを作成します。 |
|
static
|
noneOf(Class<E> elementType)
指定された要素型を使用して空の enum セットを作成します。 |
|
static
|
of(E e)
指定された要素を最初に含む enum セットを作成します。 |
|
static
|
of(E first,
E... rest)
指定された要素が最初に含まれる enum セットを作成します。 |
|
static
|
of(E e1,
E e2)
指定された要素が最初に含まれる enum セットを作成します。 |
|
static
|
of(E e1,
E e2,
E e3)
指定された要素が最初に含まれる enum セットを作成します。 |
|
static
|
of(E e1,
E e2,
E e3,
E e4)
指定された要素が最初に含まれる enum セットを作成します。 |
|
static
|
of(E e1,
E e2,
E e3,
E e4,
E e5)
指定された要素が最初に含まれる enum セットを作成します。 |
|
static
|
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, size, toArray, toArray, toString |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
インタフェース java.util.Set から継承されたメソッド |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray |
メソッドの詳細 |
---|
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 の場合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
- first または last が null の場合
IllegalArgumentException
- first.compareTo(last) > 0 の場合public EnumSet<E> clone()
Object
内の clone
Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。