JavaTM Platform
Standard Ed. 6

java.util
クラス EnumMap<K extends Enum<K>,V>

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

enum 型のキーで使用するための特殊な Map 実装です。enum マップ内のキーはすべて、マップの作成時に、指定された単一の enum 型から明示的または暗黙的に生成される必要があります。enum マップは、内部では配列として表現されます。この表現は、非常に簡潔かつ効率的です。

enum マップは、キーの「自然順序」(enum 定数の宣言される順序) で管理されます。これは、コレクションビュー (keySet()entrySet()、および values()) により返される反復子に反映されます。

コレクションビューにより返される反復子は、「弱一貫性」を保持します。これらが ConcurrentModificationException をスローすることはありません。 また、反復の進行中に実行されるマップへの変更の影響を表示することも、非表示にすることも可能です。

null キーは許可されません。null キーを挿入しようとすると、NullPointerException がスローされます。ただし、null キーの存在をテストしたり、削除を試みる場合は正常に機能します。null 値 は指定可能です。

大半のコレクション実装と同様、EnumMap は同期されません。複数のスレッドが同時に enum マップにアクセスし、それらのスレッドの少なくとも 1 つがマップを変更する場合には、外部で同期をとる必要があります。通常、これは、enum マップを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。この種のオブジェクトがない場合には、Collections.synchronizedMap(java.util.Map) メソッドを使用してマップを「ラップ」する必要があります。これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。

Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
 

実装上の注意:基本のオペレーションはすべて一定時間に実行されます。これらは通常、HashMap の対応するオペレーションよりも高速に動作します (ただし保証外)。

このクラスは、Java Collections Framework のメンバーです。

導入されたバージョン:
1.5
関連項目:
EnumSet, 直列化された形式

入れ子のクラスの概要
 
クラス java.util.AbstractMap から継承された入れ子のクラス/インタフェース
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース
Map.Entry<K,V>
 
コンストラクタの概要
EnumMap(Class<K> keyType)
          指定されたキーの型を使用して空の enum マップを作成します。
EnumMap(EnumMap<K,? extends V> m)
          指定された 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)
          指定されたキーがマップされている値を返します。
 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 から継承されたメソッド
hashCode, isEmpty, toString
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

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 - mEnumMap インスタンスではなく、マッピングを含まない場合
NullPointerException - m が null の場合
メソッドの詳細

size

public int size()
マップ内のキー値マッピングの数を返します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の size
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の 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 つの場合を区別できます。

定義:
インタフェース Map<K extends Enum<K>,V> 内の get
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の get
パラメータ:
key - 関連付けられた値が返されるキー
戻り値:
指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合は null

put

public V put(K key,
             V value)
指定された値と指定されたキーをこのマップに関連付けます。マップが以前にこのキーのマッピングを保持していた場合、古い値が置き換えられます。

定義:
インタフェース Map<K extends Enum<K>,V> 内の put
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の put
パラメータ:
key - 指定された値が関連付けられるキー
value - 指定されたキーに関連付けられる値
戻り値:
指定されたキーに関連した古い値。または、キーのマッピングがなかった場合は null。戻り値 null は、マップが以前に null と指定されたキーを関連付けていたことを示す場合もある
例外:
NullPointerException - 指定されたキーが null である場合

remove

public V remove(Object key)
キーに対するマッピングがあれば、そのキーをマップから削除します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の remove
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の remove
パラメータ:
key - マッピングがマップから削除されるキー
戻り値:
指定されたキーに関連した古い値。または、キーのエントリがなかった場合は null。戻り値 null は、マップが以前に null と指定されたキーを関連付けていたことを示す場合もある

putAll

public void putAll(Map<? extends K,? extends V> m)
指定されたマップからすべてのマッピングをマップにコピーします。これにより、マップが指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。

定義:
インタフェース Map<K extends Enum<K>,V> 内の putAll
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の putAll
パラメータ:
m - このマップに格納されるマッピング
例外:
NullPointerException - 指定されたマップが null の場合、指定されたマップ内の 1 つまたは複数のキーが null になる

clear

public void clear()
すべてのマッピングをマップから削除します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の clear
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の clear

keySet

public Set<K> keySet()
このマップに含まれるキーの Set ビューを返します。返されるセットは、Map.keySet() に概説されている汎用規約に従います。セットの反復子は、自然順序 (enum 定数の宣言された順序) に従ってキーを返します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の keySet
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の keySet
戻り値:
enum マップに含まれるキーのセットビュー

values

public Collection<V> values()
このマップに含まれる値の Collection ビューを返します。返されるコレクションは、Map.values() に概説されている汎用規約に従います。コレクションの反復子は、対応するキーがマップ内に表示される自然順序 (enum 定数の宣言された順序) に従って値を返します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の values
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の values
戻り値:
マップ内に含まれている値のコレクションビュー

entrySet

public Set<Map.Entry<K,V>> entrySet()
このマップに含まれるマップの Set ビューを返します。返されるセットは、Map.keySet() に概説されている汎用規約に従います。セットの反復子は、キーがマップ内に表示される自然順序 (enum 定数の宣言された順序) に従ってマッピングを返します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の entrySet
定義:
クラス AbstractMap<K extends Enum<K>,V> 内の entrySet
戻り値:
enum マップに含まれるマッピングのセットビュー

equals

public boolean equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。指定されたオブジェクトもマップであり、2 つのマップが Map.equals(Object) 規約で指定されたものと同じマッピングを表す場合、true を返します。

定義:
インタフェース Map<K extends Enum<K>,V> 内の equals
オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の equals
パラメータ:
o - このマップと等しいかどうかを比較するオブジェクト
戻り値:
指定されたオブジェクトがマップと等しい場合は true
関連項目:
Object.hashCode(), Hashtable

clone

public EnumMap<K,V> clone()
この enum マップのシャローコピーを返します。値自身は複製されません。

オーバーライド:
クラス AbstractMap<K extends Enum<K>,V> 内の clone
戻り値:
この enum マップのシャローコピー
関連項目:
Cloneable

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。