- 型パラメータ:
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
このインタフェースは、インタフェースではなく完全に抽象化されたクラスである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.of
、Map.ofEntries
およびMap.copyOf
静的ファクトリ・メソッドを使用すると、変更不可能なマップを簡単に作成できます。 これらのメソッドによって作成されたMap
インスタンスには、次の特性があります:
- それらはunmodifiableです。 キーと値は追加、削除または更新できません。 マップ上で任意のメソッドを呼び出すと、常に
UnsupportedOperationException
がスローされます。 ただし、含まれているキーまたは値自体が可変である場合、マップの動作が一貫していないか、その内容が変化しているように見える可能性があります。 null
キーおよび値は許可されません。null
キーまたは値でそれらを作成しようとすると、NullPointerException
になります。- すべてのキーおよび値が直列化可能である場合は、直列化可能です。
- 作成時に重複キーを拒否します。 静的ファクトリ・メソッドに渡された重複キーは、
IllegalArgumentException
になります。 - マッピングの反復順序は指定されず、変更される可能性があります。
- それらはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されたインスタンスのアイデンティティについて何も想定しないでください。 ファクトリは、新しいインスタンスを作成したり、既存のインスタンスを再利用できます。
- これらは、「直列化された形式」ページで指定したとおりに直列化されます。
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明void
clear()
マップからマッピングをすべて削除します(オプションの操作)。default V
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合は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> 指定されたMapのエントリを含む「変更不可能なMap」を返します。static <K,
V> Map.Entry <K, V> entry
(K k, V v) 指定されたキーと値を含む変更不可能なMap.Entry
を返します。entrySet()
このマップに含まれるマッピングのSet
ビューを返します。boolean
指定されたオブジェクトがこのマップと等しいかどうかを比較します。default void
forEach
(BiConsumer<? super K, ? super V> action) このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。default V
getOrDefault
(Object key, V defaultValue) 指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
を返します。int
hashCode()
マップのハッシュ・コード値を返します。boolean
isEmpty()
このマップがキーと値のマッピングを保持しない場合にtrue
を返します。keySet()
このマップに含まれるキーのSet
ビューを返します。default V
指定されたキーがまだ値と関連付けられていないか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> 指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。void
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。default V
putIfAbsent
(K key, V value) 指定されたキーがまだ値に関連付けられていない(または、null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。default boolean
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。default V
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default boolean
指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default void
replaceAll
(BiFunction<? super K, ? super V, ? extends V> function) すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。int
size()
このマップ内のキー値マッピングの数を返します。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
を返します。 より正式には、このマップに値v
へのマッピングがObjects.equals(value, v)
のように少なくとも1つ含まれている場合にのみ、true
を返します。 この操作では、Map
インタフェースのほとんどの実装で、マップ・サイズに時間線形が必要になる場合があります。- パラメータ:
value
- このマップにあるかどうかが判定される値- 戻り値:
- このマップが1つまたは複数のキーを指定された値にマッピングしている場合は
true
- 例外:
ClassCastException
- 値がマップに適さない型の場合(オプション)NullPointerException
- 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)
-
get
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。より正式には、このマップにキー
k
から値v
へのマッピング(Objects.equals(key, k)
など)が含まれる場合、このメソッドはv
を返します。それ以外の場合はnull
を返します。 (このようなマッピングは1つのみ存在できます。)このマップがnull値を許可する場合、戻り値の
null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップすることもあります。containsKey
操作を使うと、これら2つのケースを見分けることができます。- パラメータ:
key
- 関連付けられた値が返されるキー- 戻り値:
- 指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合は
null
- 例外:
ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
-
put
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。 (マップm
には、m.containsKey(k)
がtrue
を返す場合にのみ、キーk
のマッピングが含まれていると記述されます。)- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値- 戻り値:
key
に以前に関連付けられていた値。key
のマッピングが存在しなかった場合はnull
。 (null
の戻り値は、実装でnull
値がサポートされている場合、マップが以前にnull
をkey
に関連付けたことも示すことができます。)- 例外:
UnsupportedOperationException
-put
オペレーションがこのマップでサポートされない場合ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたキーまたは値がnullであり、このマップがnullのキーまたは値を許可しない場合IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
-
remove
このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップにキーk
から値v
へのマッピングが含まれている場合(Objects.equals(key, k)
など)、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。このマップが以前にキーを関連付けた値を返します。マップにキーのマッピングが含まれていない場合は
null
を返します。このマップでNULL値が許可されている場合、
null
の戻り値は「必ずしも」マップにキーのマッピングが含まれていないことを示しません。マップによってキーがnull
に明示的にマップされている可能性もあります。呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。
- パラメータ:
key
- マッピングがマップから削除されるキー- 戻り値:
key
に以前に関連付けられていた値。key
のマッピングが存在しなかった場合はnull
。- 例外:
UnsupportedOperationException
-remove
オペレーションがこのマップでサポートされない場合ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
-
putAll
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 このコールの効果は、指定されたマップ内のキーk
から値v
へのマッピングごとに、このマップでput(k, v)
を1回コールすることと同等です。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。 指定したマップに「見つける」が定義されている場合、そのマッピングの処理は通常、その順序で実行されます。- パラメータ:
m
- このマップに格納されるマッピング- 例外:
UnsupportedOperationException
-putAll
操作がこのマップでサポートされていない場合ClassCastException
- 指定されたマップ内のキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたマップがnullである場合、またはこのマップがnullのキーまたは値を許可せず、指定されたマップにnullのキーまたは値が含まれている場合IllegalArgumentException
- 指定されたマップ内のキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
-
clear
void clear()マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。- 例外:
UnsupportedOperationException
-clear
操作がこのマップでサポートされていない場合
-
keySet
このマップに含まれるキーのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremove
オペレーションを除く)。 セットは要素の削除をサポートします。Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションで対応するマッピングをマップから削除します。add
またはaddAll
操作はサポートされていません。- 戻り値:
- マップに含まれているキーのセット・ビュー
-
values
Collection<V> values()このマップに含まれる値のCollection
ビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Collection.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。- 戻り値:
- マップ内に含まれている値のコレクション・ビュー
-
entrySet
このマップに含まれるマッピングのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーション、またはイテレータにより返されるマップ・エントリに対するsetValue
オペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。- 戻り値:
- マップ内に保持されているマッピングのセット・ビュー
-
equals
boolean equals(Object o) 指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトもマップであり、2つのマップが同じマッピングを表す場合にtrue
を返します。 つまり、m1.entrySet().equals(m2.entrySet())
である場合、2つのマップm1
とm2
は同じマッピングを表します。 これにより、equals
メソッドがMap
インタフェースのさまざまな実装間で正しく動作することが保証されます。 -
hashCode
int hashCode()マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、マップのentrySet()
ビューの各エントリのハッシュ・コードの合計として定義されます。 これにより、Object.hashCode()
の一般的な契約で必要となる、m1
およびm2
の2つのマップに対してm1.equals(m2)
がm1.hashCode()==m2.hashCode()
であることを意味します。 -
getOrDefault
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合は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
指定されたキーがまだ値に関連付けられていない(または、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
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。- 実装要件:
- この
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
指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。if (map.containsKey(key) && Objects.equals(map.get(key), oldValue)) { map.put(key, newValue); return true; } else return false;
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 指定された値が関連付けられるキーoldValue
- 指定されたキーに関連付けられていると予想される値newValue
- 指定されたキーに関連付けられる値- 戻り値:
- 値が置換された場合は
true
- 例外:
UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれを格納できない場合NullPointerException
- 指定されたキーまたはnewValueがnullで、このマップがnullキーまたは値を許可しない場合NullPointerException
- oldValueがnullで、このマップがnull値を許可しない場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、それをこのマップに格納できない場合- 導入されたバージョン:
- 1.8
-
replace
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。- 実装要件:
- この
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
指定されたキーがまだ値に関連付けられていない(または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
指定されたキーの値が存在していて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
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合は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
指定されたキーがまだ値と関連付けられていないか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) - 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
になります。- それらは変更不可能です。 返された
Entry
のEntry.setValue()
を呼び出すと、UnsupportedOperationException
が返されます。 - 直列化可能ではありません。
- それらはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されたインスタンスのアイデンティティについて何も想定しないでください。 このメソッドは、新しいインスタンスを作成したり、既存のインスタンスを再利用できます。
- APIのノート:
- 直列化可能な
Entry
については、AbstractMap.SimpleEntry
またはAbstractMap.SimpleImmutableEntry
を参照してください。 - 型パラメータ:
K
- キーのタイプV
- 値の型- パラメータ:
k
- キーv
- 値- 戻り値:
- 指定されたキーと値を含む
Entry
- 例外:
NullPointerException
キーまたは値がnull
の場合- 導入されたバージョン:
- 9
- 関連項目:
-
copyOf
指定されたMapのエントリを含む「変更不可能なMap」を返します。 指定されたMapはnullであってはならず、nullキーまたは値を含んではいけません。 指定されたMapがその後に変更された場合、返されたMapはそのような変更を反映しません。- 実装上のノート:
- 指定されたマップが「変更不可能なMap」の場合、通常、copyOfをコールしてもコピーは作成されません。
- 型パラメータ:
K
-Map
のキー・タイプV
-Map
の値タイプ- パラメータ:
map
- エントリが描画されるMap
はnullでなくてはなりません- 戻り値:
- 与えられた
Map
のエントリを含むMap
- 例外:
NullPointerException
- mapがnullの場合、またはnullキーまたは値が含まれている場合- 導入されたバージョン:
- 10
-