クラス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(Map)メソッドを使用してマップをラップする必要があります。 これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。

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

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

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

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

    クラスAbstractMapで宣言されたネストされたクラス/インタフェース

    AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
    修飾子と型
    クラス
    説明
    static class 
    キーと値を保持するエントリ。
    static class 
    キーと値を保守する変更不可のエントリ。

    インタフェースMapで宣言されたネストされたクラス/インタフェース

    Map.Entry<K,V>
    修飾子と型
    インタフェース
    説明
    static interface 
    マップのエントリ(キーと値のペア)です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    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ビューを返します。

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

    isEmpty, toString
    修飾子と型
    メソッド
    説明
    boolean
    このマップがキーと値のマッピングを保持しない場合にtrueを返します。
    このマップの文字列表現を返します。

    クラスオブジェクトで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースMapで宣言されたメソッド

    compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    修飾子と型
    メソッド
    説明
    default V
    compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
    指定されたキーとその現在のマップされた値のマッピングをコンピュートしようとします。現在のマッピング(オプションの操作)がない場合はnullです。
    default V
    computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
    指定されたキーが値(または、nullにマップされます。)にまだ関連付けられていない場合、指定されたマッピング関数を使用してその値をコンピュートし、null (オプションの操作)でないかぎりこのマップに入力します。
    default V
    computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
    指定されたキーの値が存在し、null以外の場合は、キーとその現在のマップされた値(オプションの操作)を指定して、新しいマッピングのコンピュートを試みます。
    default void
    forEach(BiConsumer<? super K, ? super V> action)
    このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
    default V
    getOrDefault(Object key, V defaultValue)
    指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
    default V
    merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
    指定されたキーがまだ値に関連付けられていない場合、またはnullに関連付けられている場合は、指定されたnull以外の値(オプションの操作)に関連付けます。
    default V
    putIfAbsent(K key, V value)
    指定されたキーが値(または、nullにマップされます。)にまだ関連付けられていない場合、そのキーは指定された値に関連付けられ、nullを返します。それ以外の場合は、現在の値(オプションの操作)を返します。
    default boolean
    remove(Object key, Object value)
    指定されたキーが現在、指定された値(オプションの操作)にマップされている場合にのみ、そのキーのエントリを削除します。
    default V
    replace(K key, V value)
    指定されたキーのエントリが、現在値(オプションの操作)にマップされている場合にのみ、そのエントリを置換します。
    default boolean
    replace(K key, V oldValue, V newValue)
    指定された値(オプションの操作)に現在マップされている場合にのみ、指定されたキーのエントリを置換します。
    default void
    replaceAll(BiFunction<? super K, ? super V, ? extends V> function)
    すべてのエントリが処理されるか、関数が例外(オプションの操作)をスローするまで、各エントリの値を、そのエントリの指定された関数を呼び出した結果に置き換えます。
  • コンストラクタの詳細

    • 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()
      このマップ内のキー値マッピングの数を返します。
      定義:
      size、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      size、クラスAbstractMap<K extends Enum<K>, V>
      戻り値:
      このマップ内のキーと値のマッピングの数
    • containsValue

      public boolean containsValue(Object value)
      このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
      定義:
      containsValue、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      containsValue、クラスAbstractMap<K extends Enum<K>, V>
      パラメータ:
      value - マップにあるかどうかを判定される値
      戻り値:
      このマップがこの値に1つ以上のキーをマップする場合、true
    • containsKey

      public boolean containsKey(Object key)
      指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。
      定義:
      containsKey、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      containsKey、クラスAbstractMap<K extends Enum<K>, V>
      パラメータ:
      key - このマップ内にあるかどうかが判定されるキー
      戻り値:
      指定されたキーのマッピングがこのマップに含まれている場合はtrue
    • get

      public V get(Object key)
      指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。

      つまり、このメソッドは、(key == k)となるキーkから値vへのマッピングがこのマップに含まれている場合はvを返し、それ以外の場合はnullを返します。 (このようなマッピングは1つのみ存在できます。)

      戻り値nullは、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップすることもあります。 containsKey操作を使うと、これら2つのケースを見分けることができます。

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

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

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

      public void putAll(Map<? extends K, ? extends V> m)
      指定されたマップからすべてのマッピングをマップにコピーします。 これにより、マップが指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。
      定義:
      putAll、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      putAll、クラスAbstractMap<K extends Enum<K>, V>
      パラメータ:
      m - このマップに格納されるマッピング
      スロー:
      NullPointerException - 指定されたマップがnullの場合、または指定されたマップ内の1つまたは複数のキーがnullになる場合
    • clear

      public void clear()
      すべてのマッピングをマップから削除します。
      定義:
      clear、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      clear、クラスAbstractMap<K extends Enum<K>, V>
    • keySet

      public Set<K> keySet()
      このマップに含まれるキーのSetビューを返します。 返されるセットは、Map.keySet()に概説されている汎用規約に従います。 セットのイテレータは、自然順序(enum定数の宣言された順序)に従ってキーを返します。
      定義:
      keySet、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      keySet、クラスAbstractMap<K extends Enum<K>, V>
      戻り値:
      enumマップに含まれるキーのセット・ビュー
    • values

      public Collection<V> values()
      このマップに含まれる値のCollectionビューを返します。 返されるコレクションは、Map.values()に概説されている汎用規約に従います。 コレクションのイテレータは、対応するキーがマップ内に表示される自然順序(enum定数の宣言された順序)に従って値を返します。
      定義:
      values、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      values、クラスAbstractMap<K extends Enum<K>, V>
      戻り値:
      マップ内に含まれている値のコレクション・ビュー
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      このマップに含まれるマッピングのSetビューを返します。 返されるセットは、Map.keySet()に概説されている汎用規約に従います。 セットのイテレータは、キーがマップ内に表示される自然順序(enum定数の宣言された順序)に従ってマッピングを返します。
      定義:
      entrySet、インタフェースMap<K extends Enum<K>, V>
      戻り値:
      enumマップに含まれるマッピングのセット・ビュー
    • equals

      public boolean equals(Object o)
      指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトがマップでもあり、2つのマップが同じマッピングを表している場合は、trueを返します(Map.equals(Object)契約で指定)。
      定義:
      equals、インタフェースMap<K extends Enum<K>, V>
      オーバーライド:
      equals、クラスAbstractMap<K extends Enum<K>, V>
      パラメータ:
      o - このマップと等しいかどうかを比較するオブジェクト
      戻り値:
      指定されたオブジェクトがこのマップと等しい場合はtrue
      関連項目:
    • hashCode

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

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