モジュール java.base
パッケージ java.util

クラスEnumMap<K extends Enum<K>,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.EnumMap<K,V>
型パラメータ:
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のメンバーです。

導入されたバージョン:
1.5
関連項目:
  • ネストされたクラスのサマリー

    クラス 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マップを作成します。最初は、同じマッピングを含むenumマップを作成します(同じマッピングが存在する場合)。
    EnumMap(Map<K,? extends V> m)
    指定されたマップから初期化されたenumマップを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    すべてのマッピングをマップから削除します。
    このenumマップのシャロー・コピーを返します。
    boolean
    指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。
    boolean
    このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
    このマップに含まれるマッピングのSetビューを返します。
    boolean
    指定されたオブジェクトがこのマップと等しいかどうかを比較します。
    get(Object key)
    指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
    int
    マップのハッシュ・コード値を返します。
    このマップに含まれるキーのSetビューを返します。
    put(K key, V value)
    指定された値と指定されたキーをこのマップに関連付けます。
    void
    putAll(Map<? extends K,? extends V> m)
    指定されたマップからすべてのマッピングをマップにコピーします。
    キーに対するマッピングがあれば、そのキーをマップから削除します。
    int
    このマップ内のキー値マッピングの数を返します。
    このマップに含まれる値のCollectionビューを返します。

    クラス java.util.AbstractMapで宣言されたメソッド

    isEmpty, toString

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェース 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 - 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
      戻り値:
      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
      関連項目:
    • hashCode

      public int hashCode()
      マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、マップの各エントリのハッシュ・コードの合計です。
      定義:
      インタフェースMap<K extends Enum<K>,V>内のhashCode
      オーバーライド:
      クラスAbstractMap<K extends Enum<K>,V>hashCode
      戻り値:
      マップのハッシュ・コード値
      関連項目:
    • clone

      public EnumMap<K,V> clone()
      このenumマップのシャロー・コピーを返します。 値そのものはクローン化されません。
      オーバーライド:
      クラスAbstractMap<K extends Enum<K>,V>clone
      戻り値:
      このenumマップのシャロー・コピー
      関連項目: