public class EnumMap<K extends Enum<K>,V> extends AbstractMap<K,V> implements Serializable, Cloneable
Map
実装です。enum マップ内のキーはすべて、マップの作成時に、指定された単一の enum 型から明示的または暗黙的に生成される必要があります。enum マップは、内部では配列として表現されます。この表現は、非常に簡潔かつ効率的です。
enum マップは、キーの自然順序 (enum 定数の宣言される順序) で管理されます。これは、コレクションビュー (keySet()
、entrySet()
、および values()
) により返されるイテレータに反映されます。
コレクションビューにより返されるイテレータは、弱一貫性を保持します。これらが ConcurrentModificationException
をスローすることはありません。また、反復の進行中に実行されるマップへの変更の影響を表示することも、非表示にすることも可能です。
null キーは許可されません。null キーを挿入しようとすると、NullPointerException
がスローされます。ただし、null キーの存在をテストしたり、削除を試みる場合は正常に機能します。null 値は指定可能です。
大半のコレクション実装と同様、EnumMap は同期されません。複数のスレッドが並行して enum マップにアクセスし、それらのスレッドの少なくとも 1 つがマップを変更する場合には、外部で同期をとる必要があります。通常、これは、enum マップを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedMap(java.util.Map<K, V>)
メソッドを使用してマップを「ラップ」する必要があります。これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
Map<EnumKey, V> m = Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
実装にあたっての注意:基本のオペレーションはすべて一定時間に実行されます。これらは通常、HashMap
の対応するオペレーションよりも高速に動作します (ただし保証外)。
このクラスは、Java Collections Framework のメンバーです。
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
コンストラクタと説明 |
---|
EnumMap(Class<K> keyType)
指定されたキーの型を使用して空の enum マップを作成します。
|
EnumMap(EnumMap<K,? extends V> m)
指定された enum マップと同じキーの型を使用して、enum マップを作成します。最初は、同じマッピングを含む enum マップを作成します (同じマッピングが存在する場合)。
|
EnumMap(Map<K,? extends V> m)
指定されたマップから初期化された enum マップを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
clear()
すべてのマッピングをマップから削除します。
|
EnumMap<K,V> |
clone()
この enum マップのシャローコピーを返します。
|
boolean |
containsKey(Object key)
指定のキーのマッピングがこのマップに含まれている場合に true を返します。
|
boolean |
containsValue(Object value)
このマップが 1 つまたは複数のキーを指定された値にマッピングしている場合に true を返します。
|
Set<Map.Entry<K,V>> |
entrySet()
このマップに含まれるマッピングの
Set ビューを返します。 |
boolean |
equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。
|
V |
get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合は
null を返します。 |
int |
hashCode()
マップのハッシュコード値を返します。
|
Set<K> |
keySet()
このマップに含まれるキーの
Set ビューを返します。 |
V |
put(K key, V value)
指定された値と指定されたキーをこのマップに関連付けます。
|
void |
putAll(Map<? extends K,? extends V> m)
指定されたマップからすべてのマッピングをマップにコピーします。
|
V |
remove(Object key)
キーに対するマッピングがあれば、そのキーをマップから削除します。
|
int |
size()
このマップ内のキー値マッピングの数を返します。
|
Collection<V> |
values()
このマップに含まれる値の
Collection ビューを返します。 |
isEmpty, toString
public EnumMap(Class<K> keyType)
keyType
- この enum マップ用のキー型のクラスオブジェクトNullPointerException
- keyType が null である場合public EnumMap(EnumMap<K,? extends V> m)
m
- この enum マップの初期化元の enum マップNullPointerException
- m が null の場合public EnumMap(Map<K,? extends V> m)
EnumMap(EnumMap)
と同じ動作をします。それ以外の場合は、指定されたマップがマッピングを 1 つ以上含んでいる必要があります (新規 enum マップのキーの型を判定するため)。m
- この enum マップの初期化元のマップIllegalArgumentException
- m が EnumMap インスタンスではなく、マッピングを含まない場合NullPointerException
- m が null の場合public int size()
public boolean containsValue(Object value)
containsValue
、インタフェース: Map<K extends Enum<K>,V>
containsValue
、クラス: AbstractMap<K extends Enum<K>,V>
value
- マップにあるかどうかを判定される値public boolean containsKey(Object key)
containsKey
、インタフェース: Map<K extends Enum<K>,V>
containsKey
、クラス: AbstractMap<K extends Enum<K>,V>
key
- このマップ内にあるかどうかが判定されるキーpublic V get(Object key)
null
を返します。
つまり、このメソッドは、(key == k)
となるキー k
から値 v
へのマッピングがこのマップに含まれている場合は v
を返し、それ以外の場合は null
を返します。 (このようなマッピングは 1 つのみ存在できます。)
戻り値 null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーを null
にマップすることもあります。containsKey
オペレーションを使うと、これらの 2 つの場合を区別できます。
public V put(K key, V value)
public void putAll(Map<? extends K,? extends V> m)
public void clear()
public Set<K> keySet()
Set
ビューを返します。返されるセットは、Map.keySet()
に概説されている汎用規約に従います。セットのイテレータは、自然順序 (enum 定数の宣言された順序) に従ってキーを返します。public Collection<V> values()
Collection
ビューを返します。返されるコレクションは、Map.values()
に概説されている汎用規約に従います。コレクションのイテレータは、対応するキーがマップ内に表示される自然順序 (enum 定数の宣言された順序) に従って値を返します。public Set<Map.Entry<K,V>> entrySet()
Set
ビューを返します。返されるセットは、Map.keySet()
に概説されている汎用規約に従います。セットのイテレータは、キーがマップ内に表示される自然順序 (enum 定数の宣言された順序) に従ってマッピングを返します。public boolean equals(Object o)
Map.equals(Object)
規約で指定されたものと同じマッピングを表す場合、true を返します。public int hashCode()
hashCode
、インタフェース: Map<K extends Enum<K>,V>
hashCode
、クラス: AbstractMap<K extends Enum<K>,V>
Map.Entry.hashCode()
, Object.equals(Object)
, Set.equals(Object)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.