- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.EnumMap<K,V>
-
- すべての実装されたインタフェース:
Serializable
,Cloneable
,Map<K,V>
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のメンバーです。
-
-
ネストされたクラスのサマリー
-
クラス java.util.AbstractMapで宣言されたネストされたクラス/インタフェース
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
-
-
メソッドのサマリー
修飾子と型 メソッド 説明 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
ビューを返します。-
クラス java.util.AbstractMapで宣言されたメソッド
isEmpty, toString
-
インタフェース java.util.Mapで宣言されたメソッド
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
コンストラクタの詳細
-
EnumMap
public EnumMap(Class<K> keyType)
指定されたキーの型を使用して空のenumマップを作成します。- パラメータ:
keyType
- このenumマップ用のキー型のクラス・オブジェクト- 例外:
NullPointerException
-keyType
がnullの場合
-
EnumMap
public EnumMap(EnumMap<K,? extends V> m)
指定されたenumマップと同じキーの型を使用して、enumマップを作成します。最初は、同じマッピングを含むenumマップを作成します(同じマッピングが存在する場合)。- パラメータ:
m
- このenumマップの初期化元のenumマップ- 例外:
NullPointerException
-m
がnullの場合
-
EnumMap
public EnumMap(Map<K,? extends V> m)
指定されたマップから初期化されたenumマップを作成します。 指定されたマップがEnumMap
インスタンスの場合、このコンストラクタはEnumMap(EnumMap)
と同じ動作をします。 それ以外の場合は、指定されたマップがマッピングを1つ以上含んでいる必要があります(新規enumマップのキーの型を判定するため)。- パラメータ:
m
- このenumマップの初期化元のマップ- 例外:
IllegalArgumentException
-m
がEnumMap
インスタンスではなく、マッピングを含まない場合NullPointerException
-m
がnullの場合
-
-
メソッドの詳細
-
size
public int size()
このマップ内のキー値マッピングの数を返します。
-
containsValue
public boolean containsValue(Object value)
このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrue
を返します。- 定義:
- インタフェース
Map<K extends Enum<K>,V>
内のcontainsValue
- オーバーライド:
- クラス
AbstractMap<K extends Enum<K>,V>
のcontainsValue
- パラメータ:
value
- マップにあるかどうかを判定される値- 戻り値:
- このマップが1つ以上のキーをこの値にマッピングする場合は
true
-
containsKey
public boolean containsKey(Object key)
指定されたキーのマッピングがこのマップに含まれている場合にtrue
を返します。- 定義:
- インタフェース
Map<K extends Enum<K>,V>
内のcontainsKey
- オーバーライド:
- クラス
AbstractMap<K extends Enum<K>,V>
のcontainsKey
- パラメータ:
key
- このマップ内にあるかどうかが判定されるキー- 戻り値:
- 指定されたキーのマッピングがこのマップに含まれている場合は
true
-
get
public V get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。つまり、このメソッドは、
(key == k)
となるキーk
から値v
へのマッピングがこのマップに含まれている場合はv
を返し、それ以外の場合はnull
を返します。 このようなマッピングは1つのみ存在できます。戻り値
null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップすることもあります。containsKey
操作を使うと、これら2つのケースを見分けることができます。
-
put
public V put(K key, V value)
指定された値と指定されたキーをこのマップに関連付けます。 マップが以前にこのキーのマッピングを保持していた場合、古い値が置き換えられます。
-
putAll
public void putAll(Map<? extends K,? extends V> m)
指定されたマップからすべてのマッピングをマップにコピーします。 これにより、マップが指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。
-
clear
public void clear()
すべてのマッピングをマップから削除します。
-
keySet
public Set<K> keySet()
このマップに含まれるキーのSet
ビューを返します。 返されるセットは、Map.keySet()
に概説されている汎用規約に従います。 セットのイテレータは、自然順序(enum定数の宣言された順序)に従ってキーを返します。
-
values
public Collection<V> values()
このマップに含まれる値のCollection
ビューを返します。 返されるコレクションは、Map.values()
に概説されている汎用規約に従います。 コレクションのイテレータは、対応するキーがマップ内に表示される自然順序(enum定数の宣言された順序)に従って値を返します。
-
entrySet
public Set<Map.Entry<K,V>> entrySet()
このマップに含まれるマッピングのSet
ビューを返します。 返されるセットは、Map.keySet()
に概説されている汎用規約に従います。 セットのイテレータは、キーがマップ内に表示される自然順序(enum定数の宣言された順序)に従ってマッピングを返します。
-
equals
public boolean equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトもマップであり、2つのマップがMap.equals(Object)
規約で指定されたものと同じマッピングを表す場合、true
を返します。
-
hashCode
public int hashCode()
マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、マップの各エントリのハッシュ・コードの合計です。- 定義:
- インタフェース
Map<K extends Enum<K>,V>
内のhashCode
- オーバーライド:
- クラス
AbstractMap<K extends Enum<K>,V>
のhashCode
- 戻り値:
- マップのハッシュ・コード値
- 関連項目:
Map.Entry.hashCode()
,Object.equals(Object)
,Set.equals(Object)
-
-