- 型パラメータ:
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,SimpleBindings,TabularDataSupport,TreeMap,UIDefaults,WeakHashMap
このインタフェースは、インタフェースではなく完全に抽象化されたクラスであるDictionaryクラスのかわりに使用されます。
Mapインタフェースには3つの「コレクション・ビュー」があり、これにより、マップのコンテンツはキーのセット、値のコレクションまたはキーと値のマッピングのセットとして表示できます。 マップの順序は、マップのコレクション・ビューのイテレータが要素を返すときの順序として定義されます。 TreeMapクラスなどの一部のマップ実装では、その順序について特定の保証を行いますが、HashMapクラスなどでは保証されません。
ノート:可変オブジェクトをマップ・キーとして使用する場合は細心のノートが必要です。 オブジェクトがマップのキーである間に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()メソッドが含まれます。 実装ではオプションで自己参照シナリオを処理できますが、最新の実装では行われていません。
変更不可能なマップ
Map.of、Map.ofEntries、およびMap.copyOf静的ファクトリ・メソッドは、変更不可能なマップを作成する便利な方法を提供します。 これらのメソッドによって作成されたMapインスタンスには、次の特性があります:
- それらは変更不可能です。 キーと値を追加、削除、または更新することはできません。 マップ上で任意のメソッドを呼び出すと、常に
UnsupportedOperationExceptionがスローされます。 ただし、格納されているキーまたは値自体が変更可能な場合は、マップが不整合に動作したり、内容が変更されて表示されることがあります。 - それらは
nullのキーと値を許可しません。nullキーまたは値でそれらを作成しようとすると、NullPointerExceptionになります。 - すべてのキーと値が直列化可能である場合、それらは直列化可能です。
- それらは作成時に重複するキーを拒否します。 静的ファクトリ・メソッドに渡された重複キーは、
IllegalArgumentExceptionになります。 - マッピングの反復順序は不特定であり、変更される可能性があります。
- それらはvalue-basedです。 プログラマは、equalのインスタンスを交換可能として処理し、同期に使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 ファクトリは、新しいインスタンスを作成したり既存のインスタンスを再利用することは自由です。
- それらは、「直列化された形式」ページで指定されたとおりに直列化されます。
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス -
メソッドのサマリー
修飾子と型メソッド説明voidclear()マップからマッピングをすべて削除します(オプションの操作)。default V指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。default VcomputeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) 指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。default VcomputeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。booleancontainsKey(Object key) 指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。booleancontainsValue(Object value) このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。static <K,V> Map<K, V> 指定されたMapのエントリを含む「変更不可能なマップ」を返します。static <K,V> Map.Entry<K, V> entry(K k, V v) 指定されたキーと値を含む変更不可能なMap.Entryを返します。entrySet()このマップに含まれるマッピングのSetビューを返します。boolean指定されたオブジェクトがこのマップと等しいかどうかを比較します。default voidforEach(BiConsumer<? super K, ? super V> action) このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。default VgetOrDefault(Object key, V defaultValue) 指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。inthashCode()マップのハッシュ・コード値を返します。booleanisEmpty()このマップがキーと値のマッピングを保持しない場合に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 VputIfAbsent(K key, V value) 指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。default boolean指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。default V指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default boolean指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default voidreplaceAll(BiFunction<? super K, ? super V, ? extends V> function) すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。intsize()このマップ内のキー値マッピングの数を返します。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
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。より正式には、このマップにキー
kからObjects.equals(key, k)のような値vへのマッピングが含まれている場合、このメソッドは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からObjects.equals(key, k)のような値vへのマッピングが含まれている場合、そのマッピングは削除されます。 マップはこのようなマッピングを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では、デフォルト実装は次と同等です。
デフォルト実装は、oldValueがnullの場合でもnewValueもnullでない場合にはnull値をサポートしないマップに対して、NullPointerExceptionをスローしません。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のすべての実装では、値が存在しない場合に限り、マッピング関数が一度アトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
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のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
key- 指定された値が関連付けられるキーremappingFunction- 値をコンピュートするための再マップ関数- 戻り値:
- 指定されたキーに関連付けられる新しい値。存在しない場合はnull
- 例外:
NullPointerException- 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはremappingFunctionがnullである場合UnsupportedOperationException-put操作がこのマップでサポートされない場合(オプション)ClassCastException- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)IllegalArgumentException- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)- 導入されたバージョン:
- 1.8
-
compute
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。 たとえば、次のように、値のマッピングにStringmsgを作成または追加します。
(このような目的で使用する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のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
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のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
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
@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はnullであってはならず、nullキーまたは値を含んではいけません。 指定されたMapがその後に変更された場合、返されたMapはそのような変更を反映しません。- 実装上のノート:
- 指定されたMapが「変更不可能なマップ」の場合、copyOfを呼び出すと、一般にコピーは作成されません。
- 型パラメータ:
K-Mapキー型V-Map値の型- パラメータ:
map- エントリが描画されるMapはnullでなくてはなりません- 戻り値:
- 与えられた
Mapのエントリを含むMap - 例外:
NullPointerException- mapがnullの場合、またはnullキーまたは値が含まれている場合- 導入されたバージョン:
- 10
-