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

インタフェースMap<K,​V>

型パラメータ:
K - このマップで保持されるキーの型
V - マップされる値の型
既知のすべてのサブインタフェース:
Bindings, ConcurrentMap<K,​V>, ConcurrentNavigableMap<K,​V>, NavigableMap<K,​V>, SortedMap<K,​V>
既知のすべての実装クラス:
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, Headers, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, ScriptObjectMirror, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap

public interface Map<K,​V>
キーを値にマッピングするオブジェクトです。 マップには、同一のキーを複数登録できません。各キーは1つの値にしかマッピングできません。

このインタフェースは、インタフェースというよりむしろ完全に抽象クラスであったDictionaryクラスに代わるものです。

Mapインタフェースが提供する3つのコレクション・ビューにより、マップの内容を、キーのセット、値のコレクション、あるいはキーと値のマッピングのセットとして表示できるようになります。 マップの順序は、マップのコレクション・ビューのイテレータが要素を返すときの順序として定義されます。 TreeMapクラスなど一部のマップの実装では、順序について保証しますが、HashMapクラスなどの実装では順序は保証されません。

ノート:可変オブジェクトをマップ・キーとして使用する場合は細心のノートが必要です。 オブジェクトがマップ内のキーであるときに、equalsの比較に影響を与える方法でオブジェクトの値が変更された場合、マップの動作は保証されません。 この禁止事項の特殊な例として、マップがそれ自身をキーとして持つことができないことが挙げられます。 マップがそれ自身を値として持つことは許可されますが、その場合は細心の注意が必要です。そのようなマップではequalsメソッドおよびhashCodeメソッドの動作は保証されません。

汎用マップの実装クラスはすべて、次の2つの標準的なコンストラクタを提供するようにしてください。空のマップを作成するvoid (引数なし)コンストラクタと、Map型の引数を1つ持ち、その引数と同じキーと値のマッピングで新しいマップを作成するコンストラクタです。 その結果、ユーザーは、後者のコンストラクタを使用して任意のマップをコピーすることにより、必要なクラスと等価なマップを作成できます。 これは推奨される方法ではありませんが(インタフェースはコンストラクタを持つことができないため)、JDKでの汎用マップの実装はすべてこれに従っています。

このインタフェースに含まれている「破壊的な」メソッド(処理対象のマップを変更するメソッド)は、このマップがそのオペレーションをサポートしていない場合にUnsupportedOperationExceptionをスローするように指定されています。 このとき、呼出しがマップに影響を及ぼさない場合、これらのメソッドはUnsupportedOperationExceptionをスローすることがありますが、必須ではありません。 たとえば、マッピングを「重ね合わせる」マップが空の場合に、変更不可能なマップでputAll(Map)メソッドを呼び出すと、例外をスローすることがありますが、必須ではありません。

マップの実装には、格納できるキーと値に制限があるものもあります。 たとえば、nullキーとnull値を禁止する実装や、nullキーの型に制限がある実装もあります。 不適当なキーまたは値を挿入しようとすると、通常NullPointerExceptionまたはClassCastExceptionのような非チェック例外がスローされます。 不適当なキーや値があるかどうかを照会しようとすると、例外がスローされる場合や、ただfalseを返す場合もあります。前者の動作を実行する実装もあれば、後者の動作を実行する実装もあります。 もう少し一般的に言うと、不適当なキーまたは値を処理しようとしてマップへの挿入が完了しない場合、例外がスローされるか成功するかは実装の任意です。 このインタフェースの仕様では、そうした例外は「任意」と記載されています。

Collections Frameworkインタフェース内の多数のメソッドは、equalsメソッドとの関連で定義されます。 たとえば、containsKey(Object key)メソッドの仕様は、「このマップに(key==null ? k==null : key.equals(k))を満たすキーkが含まれる場合にのみ、trueを返す」というものです。 この仕様は、「null以外の引数keyを使用してMap.containsKeyを呼び出すと、キーkkey.equals(k)が呼び出される」と理解すべきではありません 実装は、最初に2つのキーのハッシュ・コードを比較するなど、equals呼出しを回避するための最適化を自由に実装できます。 (Object.hashCode()仕様では、等価ではないハッシュ・コードを保持する2つのオブジェクトは等価ではないことが保証されます。) もう少し一般的に言うと、さまざまなCollections Frameworkインタフェースの実装で、実装者が適切と判断するなら、基本となるObjectメソッドの指定された動作を自由に利用できます。

マップの再帰的トラバースを実行する一部のマップ操作は、マップが自身を直接または間接に含んでいる自己参照インスタンスに対する例外で失敗する場合があります。 これには、clone()equals()hashCode()、およびtoString()メソッドが含まれます。 実装ではオプションで自己参照シナリオを処理できますが、最新の実装では行われていません。

変更不可能なマップ

Map.ofMap.ofEntries、およびMap.copyOf静的ファクトリ・メソッドは、変更不可能なマップを作成する便利な方法を提供します。 これらのメソッドによって作成されたMapインスタンスには、次の特性があります:

  • 彼らはunmodifiableです。 キーと値を追加、削除、または更新することはできません。 マップ上で任意のメソッドを呼び出すと、常にUnsupportedOperationExceptionがスローされます。 ただし、格納されているキーまたは値自体が変更可能な場合は、マップが不整合に動作したり、内容が変更されて表示されることがあります。
  • それらはnullのキーと値を許可しません。 nullキーまたは値でそれらを作成しようとすると、NullPointerExceptionになります。
  • すべてのキーと値が直列化可能である場合、それらは直列化可能です。
  • 彼らは作成時に重複するキーを拒否します。 静的ファクトリ・メソッドに渡された重複キーは、IllegalArgumentExceptionになります。
  • マッピングの反復順序は不特定であり、変更される可能性があります。
  • 彼らはvalue-basedです。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 ファクトリは、新しいインスタンスを作成したり既存のインスタンスを再利用することは自由です。 したがって、これらのインスタンス(参照平等(==)、アイデンティティ・ハッシュ・コード、および同期)でのアイデンティティ依存型操作は信頼性が低く、避ける必要があります。
  • それらは、「直列化されたフォーム」ページで指定されたとおりに直列化されます。

このインタフェースは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.2
関連項目:
HashMap, TreeMap, Hashtable, SortedMap, Collection, Set
  • ネストされたクラスのサマリー

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

    修飾子と型 メソッド 説明
    void clear()
    マップからマッピングをすべて削除します(オプションの操作)。
    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以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。
    boolean containsKey​(Object key)
    指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。
    boolean containsValue​(Object value)
    このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
    static <K,​ V> Map<K,​V> copyOf​(Map<? extends K,​? extends V> map)
    指定されたMapのエントリを含む「変更不可能なマップ」を返します。
    static <K,​ V> Map.Entry<K,​V> entry​(K k, V v)
    指定されたキーと値を含む変更不可能なMap.Entryを返します。
    Set<Map.Entry<K,​V>> entrySet()
    このマップに含まれるマッピングのSetビューを返します。
    boolean equals​(Object o)
    指定されたオブジェクトがこのマップと等しいかどうかを比較します。
    default void forEach​(BiConsumer<? super K,​? super V> action)
    このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
    V get​(Object key)
    指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
    default V getOrDefault​(Object key, V defaultValue)
    指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
    int hashCode()
    マップのハッシュ・コード値を返します。
    boolean isEmpty()
    このマップがキーと値のマッピングを保持しない場合にtrueを返します。
    Set<K> keySet()
    このマップに含まれるキーのSetビューを返します。
    default V merge​(K key, V value, BiFunction<? super V,​? super V,​? extends V> remappingFunction)
    指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。
    static <K,​ V> Map<K,​V> of()
    ゼロ・マッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1)
    単一のマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2)
    2つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3)
    3つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
    4つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
    5つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)
    6つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)
    7つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)
    8つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)
    9つのマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)
    10個のマッピングを含む変更不可能なマップを返します。
    static <K,​ V> Map<K,​V> ofEntries​(Map.Entry<? extends K,​? extends V>... entries)
    指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。
    V put​(K key, V value)
    指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。
    void putAll​(Map<? extends K,​? extends V> m)
    指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。
    default V putIfAbsent​(K key, V value)
    指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。
    V remove​(Object key)
    このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。
    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)
    すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
    int size()
    このマップ内のキー値マッピングの数を返します。
    Collection<V> values()
    このマップに含まれる値のCollectionビューを返します。
  • メソッドの詳細

    • size

      int size()
      このマップ内のキー値マッピングの数を返します。 マップ内にInteger.MAX_VALUEより多くの要素がある場合は、Integer.MAX_VALUEを返します。
      戻り値:
      このマップ内のキーと値のマッピングの数
    • isEmpty

      boolean isEmpty()
      このマップがキーと値のマッピングを保持しない場合にtrueを返します。
      戻り値:
      このマップがキーと値のマッピングを保持しない場合はtrue
    • containsKey

      boolean containsKey​(Object key)
      指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。 より正式には、このマップがObjects.equals(key, k)のようなキーkのマッピングを含む場合に限り、trueを返します。 (このようなマッピングは1つのみ存在できます。)
      パラメータ:
      key - このマップ内にあるかどうかが判定されるキー
      戻り値:
      指定されたキーのマッピングがこのマップに含まれている場合はtrue
      例外:
      ClassCastException - このキーがこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
    • containsValue

      boolean containsValue​(Object value)
      このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。 より正式には、このマップがObjects.equals(value, v)のような値vへの少なくとも1つのマッピングを含む場合に限り、trueを返します。 Mapインタフェースのほとんどの実装で、このオペレーションにかかる時間はマップのサイズに正比例します。
      パラメータ:
      value - このマップにあるかどうかが判定される値
      戻り値:
      このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
      例外:
      ClassCastException - 値がマップに適さない型の場合(オプション)
      NullPointerException - 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)
    • get

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

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

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

      パラメータ:
      key - 関連付けられた値が返されるキー
      戻り値:
      指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合はnull
      例外:
      ClassCastException - このキーがこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
    • put

      V put​(K key, V value)
      指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。 m.containsKey(k)trueを返す場合に限り、マップmはキーkのマッピングを含むと言えます。
      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull (実装がnull値をサポートしている場合、戻り値nullは、以前にマップがnullkeyを関連付けていたことを示す場合もある。)
      例外:
      UnsupportedOperationException - putオペレーションがこのマップでサポートされない場合
      ClassCastException - 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合
      NullPointerException - 指定されたキーまたは値がnullであり、このマップがnullのキーまたは値を許可しない場合
      IllegalArgumentException - 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
    • remove

      V remove​(Object key)
      このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップに、kからObjects.equals(key, k)のような値vへのマッピングが含まれている場合、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。

      このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合はnullを返します。

      このマップがnull値を許可する場合、戻り値のnullは、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップしていた可能性もあります。

      呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。

      パラメータ:
      key - マッピングがマップから削除されるキー
      戻り値:
      keyに以前に関連付けられていた値。keyのマッピングが存在しなかった場合はnull
      例外:
      UnsupportedOperationException - removeオペレーションがこのマップでサポートされない場合
      ClassCastException - このキーがこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
    • putAll

      void putAll​(Map<? extends K,​? extends V> m)
      指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 この呼出しの効果は、指定されたマップ内のキーkから値vへのマッピングごとに、このマップに対してput(k, v)を1回呼び出した場合と同じです。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。
      パラメータ:
      m - このマップに格納されるマッピング
      例外:
      UnsupportedOperationException - putAllオペレーションがこのマップでサポートされない場合
      ClassCastException - 指定されたマップ内のキーまたは値のクラスが原因で、このマップにそれらを格納できない場合
      NullPointerException - 指定されたマップがnullである場合、またはこのマップがnullのキーまたは値を許可せず、指定されたマップにnullのキーまたは値が含まれている場合
      IllegalArgumentException - 指定されたマップ内のキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
    • clear

      void clear()
      マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。
      例外:
      UnsupportedOperationException - clearオペレーションがこのマップでサポートされない場合
    • keySet

      Set<K> keySet()
      このマップに含まれるキーのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。 セットは要素の削除をサポートします。Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションで対応するマッピングをマップから削除します。 addまたはaddAll操作はサポートされていません。
      戻り値:
      マップに含まれているキーのセット・ビュー
    • values

      Collection<V> values()
      このマップに含まれる値のCollectionビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeCollection.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
      戻り値:
      マップ内に含まれている値のコレクション・ビュー
    • entrySet

      Set<Map.Entry<K,​V>> entrySet()
      このマップに含まれるマッピングのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーション、またはイテレータにより返されるマップ・エントリに対するsetValueオペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
      戻り値:
      マップ内に保持されているマッピングのセット・ビュー
    • equals

      boolean equals​(Object o)
      指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトもマップであり、2つのマップが同じマッピングを表す場合にtrueを返します。 つまり、m1.entrySet().equals(m2.entrySet())である場合、2つのマップm1m2は同じマッピングを表します。 これにより、Mapインタフェースの実装が異なる場合でも、equalsメソッドが正しく動作することが保証されます。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      o - このマップと等しいかどうかが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのマップと等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      int hashCode()
      マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、そのマップのentrySet()ビュー内の各エントリのハッシュ・コードの合計になるように定義されます。 これにより、Object.hashCode()の一般規約によって要求されるように、任意の2つのマップm1m2m1.equals(m2)であれば、m1.hashCode()==m2.hashCode()となることが保証されます。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      マップのハッシュ・コード値
      関連項目:
      Map.Entry.hashCode(), Object.equals(Object), equals(Object)
    • getOrDefault

      default V getOrDefault​(Object key, V defaultValue)
      指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
      実装要件:
      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
      パラメータ:
      key - 関連付けられた値が返されるキー
      defaultValue - キーのデフォルト・マッピング
      戻り値:
      指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
      例外:
      ClassCastException - このキーがこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
      導入されたバージョン:
      1.8
    • forEach

      default void forEach​(BiConsumer<? super K,​? super V> action)
      このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。
      実装要件:
      このmapでは、デフォルト実装は次と同等です。
       
       for (Map.Entry<K, V> entry : map.entrySet())
           action.accept(entry.getKey(), entry.getValue());
       
      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
      パラメータ:
      action - 各エントリに対して実行されるアクション
      例外:
      NullPointerException - 指定されたアクションがnullである場合
      ConcurrentModificationException - 削除するエントリが反復中に見つからない場合
      導入されたバージョン:
      1.8
    • replaceAll

      default void replaceAll​(BiFunction<? super K,​? super V,​? extends V> function)
      すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。 関数によってスローされた例外は、呼出し側に中継されます。
      実装要件:

      このmapでは、デフォルト実装は次と同等です。

       
       for (Map.Entry<K, V> entry : map.entrySet())
           entry.setValue(function.apply(entry.getKey(), entry.getValue()));
       

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。

      パラメータ:
      function - 各エントリに適用する関数
      例外:
      UnsupportedOperationException - setオペレーションがこのマップのエントリ・セット・イテレータでサポートされない場合。
      ClassCastException - 置換値のクラスが、置換値がこのマップに格納されることを妨げる場合
      NullPointerException - 指定された関数がnullの場合、または指定された置換値がnullでこのマップがnull値を許可しない場合
      ClassCastException - 置換値の型がこのマップに不適切な場合(オプション)
      NullPointerException - 関数または置換値がnullで、このマップがnullキーまたは値を許可しない場合(オプション)
      IllegalArgumentException - 置換値のなんらかのプロパティが、置換値がこのマップに格納されることを妨げる場合(オプション)
      ConcurrentModificationException - 削除するエントリが反復中に見つからない場合
      導入されたバージョン:
      1.8
    • putIfAbsent

      default V putIfAbsent​(K key, V value)
      指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。
      実装要件:
      この mapでは、デフォルト実装は次と同等です。
       
       V v = map.get(key);
       if (v == null)
           v = map.put(key, value);
      
       return v;
       

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
      例外:
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - キーまたは値がこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーまたは値がnullであり、かつこのマップがnullのキーまたは値を許可しない場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)
      導入されたバージョン:
      1.8
    • remove

      default boolean remove​(Object key, Object value)
      指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
      実装要件:
      このmapでは、デフォルト実装は次と同等です。
       
       if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
           map.remove(key);
           return true;
       } else
           return false;
       

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられていると予想される値
      戻り値:
      値が削除された場合はtrue
      例外:
      UnsupportedOperationException - remove操作がこのマップでサポートされない場合(オプション)
      ClassCastException - キーまたは値がこのマップに適さない型の場合(オプション)
      NullPointerException - 指定されたキーまたは値がnullであり、かつこのマップがnullのキーまたは値を許可しない場合(オプション)
      導入されたバージョン:
      1.8
    • replace

      default boolean replace​(K key, V oldValue, V newValue)
      指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
      実装要件:
      このmapでは、デフォルト実装は次と同等です。
       
       if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
           map.put(key, newValue);
           return true;
       } else
           return false;
       
      デフォルト実装は、oldValueがnullの場合でもnewValueもnullでない場合にはnull値をサポートしないマップに対して、NullPointerExceptionをスローしません。

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      oldValue - 指定されたキーに関連付けられていると予想される値
      newValue - 指定されたキーに関連付けられる値
      戻り値:
      値が置換された場合はtrue
      例外:
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが原因で、このマップにそれを格納できない場合
      NullPointerException - 指定されたキーまたはnewValueがnullで、このマップがnullキーまたは値を許可しない場合
      NullPointerException - oldValueがnullで、このマップがnull値を許可しない場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のあるプロパティが原因で、それをこのマップに格納できない場合
      導入されたバージョン:
      1.8
    • replace

      default V replace​(K key, V value)
      指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
      実装要件:
      このmapでは、デフォルト実装は次と同等です。
       
       if (map.containsKey(key)) {
           return map.put(key, value);
       } else
           return null;
       

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
      例外:
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)
      NullPointerException - このマップがnullキーやnull値を許可しないときに、指定されたキーまたは値がnullの場合
      IllegalArgumentException - 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
      導入されたバージョン:
      1.8
    • computeIfAbsent

      default V computeIfAbsent​(K key, Function<? super K,​? extends V> mappingFunction)
      指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。

      マッピング関数がnullを返した場合、マッピングは記録されません。 マッピング関数自体が(unchecked)例外をスローすると、例外は再スローされ、マッピングは記録されません。 もっとも一般的な用途は、次のように初期のマップされた値またはメモ化された結果として機能する新しいオブジェクトを構築することです。

       
       map.computeIfAbsent(key, k -> new Value(f(k)));
       

      または、1つのキーで複数の値をサポートする複数値マップMap<K,Collection<V>>を実装することです。

       
       map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
       

      マッピング関数は、計算中にこのマップを変更すべきではありません。

      実装要件:
      デフォルト実装は、このmapの次のステップと同等であり、その後現在の値を返します。存在しない場合はnullを返します。
       
       if (map.get(key) == null) {
           V newValue = mappingFunction.apply(key);
           if (newValue != null)
               map.put(key, newValue);
       }
       

      デフォルトの実装では、計算中にマッピング関数がこのマップを変更するかどうかを検出し、必要に応じてエラーを報告することは保証されません。 並行していない実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、マッピング関数が計算中にこのマップを変更することが検出された場合はConcurrentModificationExceptionをスローします。 同時の実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、マッピング関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateExceptionをスローする必要があります。

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェースConcurrentMapのすべての実装では、値が存在しない場合に限り、マッピング関数が一度アトミックに適用されるかどうかを記録する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      mappingFunction - 値をコンピュートするマッピング関数
      戻り値:
      指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
      例外:
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはmappingFunctionがnullである場合
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)
      導入されたバージョン:
      1.8
    • computeIfPresent

      default V computeIfPresent​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)
      指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。

      リマッピング関数がnullを返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

      再マップ関数は、計算中にこのマップを変更すべきではありません。

      実装要件:
      デフォルト実装は、このmapに対して以下のステップを実行してから現在の値(今は存在しない場合はnull)を返すことと同等です。
       
       if (map.get(key) != null) {
           V oldValue = map.get(key);
           V newValue = remappingFunction.apply(key, oldValue);
           if (newValue != null)
               map.put(key, newValue);
           else
               map.remove(key);
       }
       

      デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、ConcurrentModificationExceptionをスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateExceptionをスローする必要があります。

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェースConcurrentMapのすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      remappingFunction - 値をコンピュートするための再マップ関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない場合はnull
      例外:
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはremappingFunctionがnullである場合
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)
      導入されたバージョン:
      1.8
    • compute

      default V compute​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)
      指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。 たとえば、次のように、値のマッピングにString msgを作成または追加します。
       
       map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
      (このような目的で使用するmerge()メソッドは、多くの場合、より単純です。)

      再マッピング関数がnullを返した場合、マッピングは削除されます。(最初に欠席した場合は不在のままです)。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

      再マップ関数は、計算中にこのマップを変更すべきではありません。

      実装要件:
      デフォルト実装は、このmapの次のステップの実行と同等であり、その後現在の値を返します。存在しない場合はnullを返します。
       
       V oldValue = map.get(key);
       V newValue = remappingFunction.apply(key, oldValue);
       if (oldValue != null) {
          if (newValue != null)
             map.put(key, newValue);
          else
             map.remove(key);
       } else {
          if (newValue != null)
             map.put(key, newValue);
          else
             return null;
       }
       

      デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、ConcurrentModificationExceptionをスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateExceptionをスローする必要があります。

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェースConcurrentMapのすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。

      パラメータ:
      key - 指定された値が関連付けられるキー
      remappingFunction - 値をコンピュートするための再マップ関数
      戻り値:
      指定されたキーに関連付けられる新しい値。存在しない場合はnull
      例外:
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはremappingFunctionがnullである場合
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)
      導入されたバージョン:
      1.8
    • merge

      default V merge​(K key, V value, BiFunction<? super V,​? super V,​? extends V> remappingFunction)
      指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で関連する値を置換し、結果がnullの場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。 たとえば、次のように、値のマッピングにString msgを作成または追加します。
       
       map.merge(key, msg, String::concat)
       

      リマッピング関数がnullを返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

      再マップ関数は、計算中にこのマップを変更すべきではありません。

      実装要件:
      デフォルト実装は、このmapの次のステップの実行と同等であり、その後現在の値を返します。存在しない場合はnullを返します。
       
       V oldValue = map.get(key);
       V newValue = (oldValue == null) ? value :
                    remappingFunction.apply(oldValue, value);
       if (newValue == null)
           map.remove(key);
       else
           map.put(key, newValue);
       

      デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、ConcurrentModificationExceptionをスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateExceptionをスローする必要があります。

      デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェースConcurrentMapのすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。

      パラメータ:
      key - 結果値が関連付けられるキー
      value - キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値
      remappingFunction - 存在する場合に値を再計算するための再マッピング関数
      戻り値:
      指定されたキーに関連付けられた新しい値。キーに値が関連付けられなかった場合はnull
      例外:
      UnsupportedOperationException - put操作がこのマップでサポートされない場合(オプション)
      ClassCastException - 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)
      IllegalArgumentException - 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)
      NullPointerException - 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、あるいは値またはremappingFunctionがnullである場合
      導入されたバージョン:
      1.8
    • of

      static <K,​ V> Map<K,​V> of()
      ゼロ・マッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      戻り値:
      空のMap
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1)
      単一のマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - マッピング・キー
      v1 - マッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      NullPointerException - キーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2)
      2つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - キーが重複している場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3)
      3つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
      4つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
      5つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)
      6つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      k6 - 6番目のマッピング・キー
      v6 - 第6のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)
      7つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      k6 - 6番目のマッピング・キー
      v6 - 第6のマッピング値
      k7 - 第7のマッピング・キー
      v7 - 第7のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)
      8つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      k6 - 6番目のマッピング・キー
      v6 - 第6のマッピング値
      k7 - 第7のマッピング・キー
      v7 - 第7のマッピング値
      k8 - 第8のマッピング・キー
      v8 - 第8マッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)
      9つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      k6 - 6番目のマッピング・キー
      v6 - 第6のマッピング値
      k7 - 第7のマッピング・キー
      v7 - 第7のマッピング値
      k8 - 第8のマッピング・キー
      v8 - 第8マッピング値
      k9 - 第9のマッピング・キー
      v9 - 第9のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • of

      static <K,​ V> Map<K,​V> of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)
      10個のマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      k1 - 最初のマッピング・キー
      v1 - 最初のマッピング値
      k2 - 第2のマッピング・キー
      v2 - 第2のマッピング値
      k3 - 第3のマッピング・キー
      v3 - 第3のマッピング値
      k4 - 第4のマッピング・キー
      v4 - 第4のマッピング値
      k5 - 第5のマッピング・キー
      v5 - 第5のマッピング値
      k6 - 6番目のマッピング・キー
      v6 - 第6のマッピング値
      k7 - 第7のマッピング・キー
      v7 - 第7のマッピング値
      k8 - 第8のマッピング・キー
      v8 - 第8マッピング値
      k9 - 第9のマッピング・キー
      v9 - 第9のマッピング値
      k10 - 第10のマッピング・キー
      v10 - 第10のマッピング値
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - 任意のキーまたは値がnullの場合
      導入されたバージョン:
      9
    • ofEntries

      @SafeVarargsstatic <K,​ V> Map<K,​V> ofEntries​(Map.Entry<? extends K,​? extends V>... entries)
      指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。 エントリ自体はマップに格納されません。 詳細については、「変更不可能なマップ」を参照してください。
      APIのノート:
      Map.entry()メソッドを使用してマップ・エントリを作成すると便利です。 次に例を示します。
      
           import static java.util.Map.entry;
      
           Map<Integer,String> map = Map.ofEntries(
               entry(1, "a"),
               entry(2, "b"),
               entry(3, "c"),
               ...
               entry(26, "z"));
       
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      entries - マップが設定されているキーと値を含むMap.Entry
      戻り値:
      指定されたマッピングを含むMap
      例外:
      IllegalArgumentException - 重複するキーがある場合
      NullPointerException - エントリ、キー、または値がnullの場合、またはentries配列がnullの場合
      導入されたバージョン:
      9
      関連項目:
      Map.entry()
    • エントリ

      static <K,​ V> Map.Entry<K,​V> entry​(K k, V v)
      指定されたキーと値を含む変更不可能なMap.Entryを返します。 これらのエントリは、Map.ofEntries()メソッドを使用してMapインスタンスを生成するのに適しています。 このメソッドで作成されたEntryインスタンスには、次の特性があります:
      • それらはnullのキーと値を許可しません。 nullキーまたは値を使用してそれらを作成しようとすると、NullPointerExceptionになります。
      • 彼らは変更不可能です。 返されたEntryEntry.setValue()を呼び出すと、UnsupportedOperationExceptionが返されます。
      • それらは直列化可能ではありません。
      • 彼らはvalue-basedです。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 このメソッドは、新しいインスタンスを作成したり、既存のインスタンスを再利用することは自由です。 したがって、これらのインスタンス(参照平等(==)、アイデンティティ・ハッシュ・コード、および同期)でのアイデンティティ依存型操作は信頼性が低く、避ける必要があります。
      APIのノート:
      直列化可能なEntryについては、AbstractMap.SimpleEntryまたはAbstractMap.SimpleImmutableEntryを参照してください。
      型パラメータ:
      K - キー型
      V - 値の型
      パラメータ:
      k - キー
      v - 値
      戻り値:
      指定されたキーと値を含むEntry
      例外:
      NullPointerExceptionキーまたは値がnullの場合
      導入されたバージョン:
      9
      関連項目:
      Map.ofEntries()
    • copyOf

      static <K,​ V> Map<K,​V> copyOf​(Map<? extends K,​? extends V> map)
      指定されたMapのエントリを含む「変更不可能なマップ」を返します。 指定されたMapはnullであってはならず、nullキーまたは値を含んではいけません。 指定されたMapがその後に変更された場合、返されたMapはそのような変更を反映しません。
      実装上のノート:
      指定されたMapが「変更不可能なマップ」の場合、copyOfを呼び出すと、一般にコピーは作成されません。
      型パラメータ:
      K - Mapキー型
      V - Map値の型
      パラメータ:
      map - エントリが描画されるMapはnullでなくてはなりません
      戻り値:
      与えられたMapのエントリを含むMap
      例外:
      NullPointerException - mapがnullの場合、またはnullキーまたは値が含まれている場合
      導入されたバージョン:
      10