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

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

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

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

このインタフェースは、インタフェースではなく完全に抽象化されたクラスであるDictionaryクラスのかわりに使用されます。

Mapインタフェースには3つの「コレクション・ビュー」があり、これにより、マップのコンテンツはキーのセット、値のコレクションまたはキーと値のマッピングのセットとして表示できます。 マップの順序は、マップのコレクション・ビューのイテレータが要素を返すときの順序として定義されます。 TreeMapクラスなどの一部のマップ実装では、検出順序について特定の保証を行います。HashMapクラスなどでは保証されません。 定義された「見つける」を持つマップは、通常、SequencedMapインタフェースのサブタイプです。

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

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

このインタフェースに含まれる"destructive"メソッド、つまり、操作対象のマップを変更するメソッドは、このマップが操作をサポートしていない場合に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を呼び出すと、キーkに対してkey.equals(k)が呼び出されることを意味するように解釈しないでください。 実装は、2つのキーのハッシュ・コードを最初に比較するなどして、equalsの呼出しを回避する最適化を自由に実装できます。 (Object.hashCode()仕様では、等価ではないハッシュ・コードを保持する2つのオブジェクトは等価ではないことが保証されます。) もう少し一般的に言うと、さまざまなCollections Frameworkインタフェースの実装で、実装者が適切と判断するなら、基本となるObjectメソッドの指定された動作を自由に利用できます。

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

変更不可能なMaps

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

  • それらはunmodifiableです。 キーと値は追加、削除または更新できません。 マップ上で任意のメソッドを呼び出すと、常にUnsupportedOperationExceptionがスローされます。 ただし、含まれているキーまたは値自体が可変である場合、マップの動作が一貫していないか、その内容が変化しているように見える可能性があります。
  • nullキーおよび値は許可されません。 nullキーまたは値でそれらを作成しようとすると、NullPointerExceptionになります。
  • すべてのキーおよび値が直列化可能である場合は、直列化可能です。
  • 作成時に重複キーを拒否します。 静的ファクトリ・メソッドに渡された重複キーは、IllegalArgumentExceptionになります。
  • マッピングの反復順序は指定されず、変更される可能性があります。
  • それらはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されたインスタンスのアイデンティティについて何も想定しないでください。 ファクトリは、新しいインスタンスを作成したり、既存のインスタンスを再利用できます。
  • これらは、「直列化された形式」ページで指定したとおりに直列化されます。

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

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

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

    修飾子と型
    メソッド
    説明
    void
    マップからマッピングをすべて削除します(オプションの操作)。
    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
    指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。
    boolean
    このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。
    static <K, V> Map<K,V>
    copyOf(Map<? extends K,? extends V> map)
    指定されたMapのエントリを含む「変更不可能なMap」を返します。
    static <K, V> Map.Entry<K,V>
    entry(K k, V v)
    指定されたキーと値を含む変更不可能なMap.Entryを返します。
    このマップに含まれるマッピングのSetビューを返します。
    boolean
    指定されたオブジェクトがこのマップと等しいかどうかを比較します。
    default void
    forEach(BiConsumer<? super K,? super V> action)
    このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
    get(Object key)
    指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
    default V
    getOrDefault(Object key, V defaultValue)
    指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
    int
    マップのハッシュ・コード値を返します。
    boolean
    このマップがキーと値のマッピングを保持しない場合にtrueを返します。
    このマップに含まれるキーの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)
    指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。
    put(K key, V value)
    指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。
    void
    putAll(Map<? extends K,? extends V> m)
    指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。
    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)
    すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
    int
    このマップ内のキー値マッピングの数を返します。
    このマップに含まれる値の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を返します。 より正式には、このマップに値vへのマッピングがObjects.equals(value, v)のように少なくとも1つ含まれている場合にのみ、trueを返します。 この操作では、Mapインタフェースのほとんどの実装で、マップ・サイズに時間線形が必要になる場合があります。
      パラメータ:
      value - このマップにあるかどうかが判定される値
      戻り値:
      このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
      例外:
      ClassCastException - 値がマップに適さない型の場合(オプション)
      NullPointerException - 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)
    • get

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

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

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

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

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

      V remove(Object key)
      このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップにキーkから値vへのマッピングが含まれている場合(Objects.equals(key, k)など)、そのマッピングは削除されます。 マップはこのようなマッピングを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は同じマッピングを表します。 これにより、equalsメソッドがMapインタフェースのさまざまな実装間で正しく動作することが保証されます。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      o - このマップと等しいかどうかが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのマップと等しい場合はtrue
      関連項目:
    • hashCode

      int hashCode()
      マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、マップのentrySet()ビューの各エントリのハッシュ・コードの合計として定義されます。 これにより、Object.hashCode()の一般的な契約で必要となる、m1およびm2の2つのマップに対してm1.equals(m2)m1.hashCode()==m2.hashCode()であることを意味します。
      オーバーライド:
      hashCode、クラス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 - 置換値のクラスがこのマップ(optional)に格納されない場合
      NullPointerException - 指定された関数がnullの場合、または置換値がnullで、このマップでnull値が許可されない場合(optional)
      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), oldValue)) {
           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のすべての実装では、値が存在しない場合にのみ、マッピング関数が1回原子的に適用されるかどうかを文書化する必要があります。

      パラメータ:
      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のすべての実装では、再マッピング関数が1回原子的に適用されるかどうかが、値が存在しない場合にのみ文書化されている必要があります。

      パラメータ:
      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に対して以下のステップを実行するのと同じです:
       
       V oldValue = map.get(key);
       V newValue = remappingFunction.apply(key, oldValue);
       if (newValue != null) {
           map.put(key, newValue);
       } else if (oldValue != null || map.containsKey(key)) {
           map.remove(key);
       }
       return newValue;
       

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

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

      パラメータ:
      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のすべての実装では、再マッピング関数が1回原子的に適用されるかどうかが、値が存在しない場合にのみ文書化されている必要があります。

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

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

      @SafeVarargs static <K, V> Map<K,V> ofEntries(Map.Entry<? extends K,? extends V>... entries)
      指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。 エントリ自体はマップに格納されません。 詳細については、「変更不可能なMaps」を参照してください。
      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
      関連項目:
    • 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です。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されたインスタンスのアイデンティティについて何も想定しないでください。 このメソッドは、新しいインスタンスを作成したり、既存のインスタンスを再利用できます。
      APIのノート:
      直列化可能なEntryについては、AbstractMap.SimpleEntryまたはAbstractMap.SimpleImmutableEntryを参照してください。
      型パラメータ:
      K - キーのタイプ
      V - 値の型
      パラメータ:
      k - キー
      v - 値
      戻り値:
      指定されたキーと値を含むEntry
      例外:
      NullPointerExceptionキーまたは値がnullの場合
      導入されたバージョン:
      9
      関連項目:
    • copyOf

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