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

クラスEnumMap<K extends Enum<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
    関連項目:
    EnumSet, 直列化された形式
    • コンストラクタのサマリー

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

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

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