-
- 型パラメータ:
K
- このマップで保持されるキーの型V
- マップされる値の型
- 既知のすべてのサブインタフェース:
Bindings
,ConcurrentMap<K,V>
,ConcurrentNavigableMap<K,V>
,NavigableMap<K,V>
,SortedMap<K,V>
- 既知のすべての実装クラス:
AbstractMap
,Attributes
,AuthProvider
,ConcurrentHashMap
,ConcurrentSkipListMap
,EnumMap
,HashMap
,Hashtable
,Headers
,IdentityHashMap
,LinkedHashMap
,PrinterStateReasons
,Properties
,Provider
,RenderingHints
,ScriptObjectMirror
,SimpleBindings
,TabularDataSupport
,TreeMap
,UIDefaults
,WeakHashMap
public interface Map<K,V>
キーを値にマッピングするオブジェクトです。 マップには、同一のキーを複数登録できません。各キーは1つの値にしかマッピングできません。このインタフェースは、インタフェースというよりむしろ完全に抽象クラスであった
Dictionary
クラスに代わるものです。Map
インタフェースが提供する3つのコレクション・ビューにより、マップの内容を、キーのセット、値のコレクション、あるいはキーと値のマッピングのセットとして表示できるようになります。 マップの順序は、マップのコレクション・ビューのイテレータが要素を返すときの順序として定義されます。TreeMap
クラスなど一部のマップの実装では、順序について保証しますが、HashMap
クラスなどの実装では順序は保証されません。ノート:可変オブジェクトをマップ・キーとして使用する場合は細心の注意が必要です。 オブジェクトがマップ内のキーであるときに、
equals
の比較に影響を与える方法でオブジェクトの値が変更された場合、マップの動作は保証されません。 この禁止事項の特殊な例として、マップがそれ自身をキーとして持つことができないことが挙げられます。 マップがそれ自身を値として持つことは許可されますが、その場合は細心の注意が必要です。そのようなマップではequals
メソッドおよびhashCode
メソッドの動作は保証されません。汎用マップの実装クラスはすべて、次の2つの標準的なコンストラクタを提供するようにしてください。空のマップを作成するvoid (引数なし)コンストラクタと、
Map
型の引数を1つ持ち、その引数と同じキーと値のマッピングで新しいマップを作成するコンストラクタです。 その結果、ユーザーは、後者のコンストラクタを使用して任意のマップをコピーすることにより、必要なクラスと等価なマップを作成できます。 これは推奨される方法ではありませんが(インタフェースはコンストラクタを持つことができないため)、JDKでの汎用マップの実装はすべてこれに従っています。このインタフェースに含まれている「破壊的な」メソッド(処理対象のマップを変更するメソッド)は、このマップがそのオペレーションをサポートしていない場合に
UnsupportedOperationException
をスローするように指定されています。 このとき、呼出しがマップに影響を及ぼさない場合、これらのメソッドはUnsupportedOperationException
をスローすることがありますが、必須ではありません。 たとえば、マッピングを「重ね合わせる」マップが空の場合に、変更不可能なマップでputAll(Map)
メソッドを呼び出すと、例外をスローすることがありますが、必須ではありません。マップの実装には、格納できるキーと値に制限があるものもあります。 たとえば、nullキーとnull値を禁止する実装や、nullキーの型に制限がある実装もあります。 不適当なキーまたは値を挿入しようとすると、通常
NullPointerException
またはClassCastException
のような非チェック例外がスローされます。 不適当なキーや値があるかどうかを照会しようとすると、例外がスローされる場合や、ただfalseを返す場合もあります。前者の動作を実行する実装もあれば、後者の動作を実行する実装もあります。 もう少し一般的に言うと、不適当なキーまたは値を処理しようとしてマップへの挿入が完了しない場合、例外がスローされるか成功するかは実装の任意です。 このインタフェースの仕様では、そうした例外は「任意」と記載されています。Collections Frameworkインタフェース内の多数のメソッドは、
equals
メソッドとの関連で定義されます。 たとえば、containsKey(Object key)
メソッドの仕様は、「このマップに(key==null ? k==null : key.equals(k))
を満たすキーk
が含まれる場合にのみ、true
を返す」というものです。 この仕様は、「null以外の引数key
を使用してMap.containsKey
を呼び出すと、キーk
でkey.equals(k)
が呼び出される」と理解すべきではありません。 実装は、最初に2つのキーのハッシュ・コードを比較するなど、equals
呼出しを回避するための最適化を自由に実装できます。 (Object.hashCode()
仕様では、等価ではないハッシュ・コードを保持する2つのオブジェクトは等価ではないことが保証されます。) もう少し一般的に言うと、さまざまなCollections Frameworkインタフェースの実装で、実装者が適切と判断するなら、基本となるObject
メソッドの指定された動作を自由に利用できます。マップの再帰的トラバースを実行する一部のマップ操作は、マップが自身を直接または間接に含んでいる自己参照インスタンスに対する例外で失敗する場合があります。 これには、
clone()
、equals()
、hashCode()
、およびtoString()
メソッドが含まれます。 実装ではオプションで自己参照シナリオを処理できますが、最新の実装では行われていません。変更不可能なマップ
Map.of
、Map.ofEntries
、およびMap.copyOf
静的ファクトリ・メソッドは、変更不可能なマップを作成する便利な方法を提供します。 これらのメソッドによって作成されたMap
インスタンスには、次の特性があります:- 彼らはunmodifiableです。 キーと値を追加、削除、または更新することはできません。 マップ上で任意のメソッドを呼び出すと、常に
UnsupportedOperationException
がスローされます。 ただし、格納されているキーまたは値自体が変更可能な場合は、マップが不整合に動作したり、内容が変更されて表示されることがあります。 - それらは
null
のキーと値を許可しません。null
キーまたは値でそれらを作成しようとすると、NullPointerException
になります。 - すべてのキーと値が直列化可能である場合、それらは直列化可能です。
- 彼らは作成時に重複するキーを拒否します。 静的ファクトリ・メソッドに渡された重複キーは、
IllegalArgumentException
になります。 - マッピングの反復順序は不特定であり、変更される可能性があります。
- 彼らはvalue-basedです。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 ファクトリは、新しいインスタンスを作成したり既存のインスタンスを再利用することは自由です。 したがって、これらのインスタンス(参照平等(
==
)、アイデンティティ・ハッシュ・コード、および同期)でのアイデンティティ依存型操作は信頼性が低く、避ける必要があります。 - それらは、「直列化されたフォーム」ページで指定されたとおりに直列化されます。
このインタフェースは、Java Collections Frameworkのメンバーです。
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド デフォルト・メソッド 修飾子と型 メソッド 説明 void
clear()
マップからマッピングをすべて削除します(オプションの操作)。default V
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull
)。default V
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
指定されたキーがまだ値に関連付けられていない(またはnull
にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null
でない場合はそれをこのマップに入力します。default V
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。boolean
containsKey(Object key)
指定されたキーのマッピングがこのマップに含まれている場合にtrue
を返します。boolean
containsValue(Object value)
このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrue
を返します。static <K,V>
Map<K,V>copyOf(Map<? extends K,? extends V> map)
指定されたMapのエントリを含む「変更不可能なマップ」を返します。static <K,V>
Map.Entry<K,V>entry(K k, V v)
指定されたキーと値を含む変更不可能なMap.Entry
を返します。Set<Map.Entry<K,V>>
entrySet()
このマップに含まれるマッピングのSet
ビューを返します。boolean
equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。default void
forEach(BiConsumer<? super K,? super V> action)
このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。V
get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。default V
getOrDefault(Object key, V defaultValue)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
を返します。int
hashCode()
マップのハッシュ・コード値を返します。boolean
isEmpty()
このマップがキーと値のマッピングを保持しない場合にtrue
を返します。Set<K>
keySet()
このマップに含まれるキーのSet
ビューを返します。default V
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。static <K,V>
Map<K,V>of()
ゼロ・マッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1)
単一のマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2)
2つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3)
3つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
4つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
5つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)
6つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)
7つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)
8つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)
9つのマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)
10個のマッピングを含む変更不可能なマップを返します。static <K,V>
Map<K,V>ofEntries(Map.Entry<? extends K,? extends V>... entries)
指定されたエントリから抽出されたキーと値を含む変更不可能なマップを返します。V
put(K key, V value)
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。void
putAll(Map<? extends K,? extends V> m)
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。default V
putIfAbsent(K key, V value)
指定されたキーがまだ値に関連付けられていない(または、null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。V
remove(Object key)
このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。default boolean
remove(Object key, Object value)
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。default V
replace(K key, V value)
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default boolean
replace(K key, V oldValue, V newValue)
指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。default void
replaceAll(BiFunction<? super K,? super V,? extends V> function)
すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。int
size()
このマップ内のキー値マッピングの数を返します。Collection<V>
values()
このマップに含まれる値のCollection
ビューを返します。
-
-
-
メソッドの詳細
-
size
int size()
このマップ内のキー値マッピングの数を返します。 マップ内にInteger.MAX_VALUE
より多くの要素がある場合は、Integer.MAX_VALUE
を返します。- 戻り値:
- このマップ内のキーと値のマッピングの数
-
isEmpty
boolean isEmpty()
このマップがキーと値のマッピングを保持しない場合にtrue
を返します。- 戻り値:
- このマップがキーと値のマッピングを保持しない場合は
true
-
containsKey
boolean containsKey(Object key)
指定されたキーのマッピングがこのマップに含まれている場合にtrue
を返します。 より正式には、このマップがObjects.equals(key, k)
のようなキーk
のマッピングを含む場合に限り、true
を返します。 (このようなマッピングは1つのみ存在できます。)- パラメータ:
key
- このマップ内にあるかどうかが判定されるキー- 戻り値:
- 指定されたキーのマッピングがこのマップに含まれている場合は
true
- 例外:
ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
-
containsValue
boolean containsValue(Object value)
このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrue
を返します。 より正式には、このマップがObjects.equals(value, v)
のような値v
への少なくとも1つのマッピングを含む場合に限り、true
を返します。Map
インタフェースのほとんどの実装で、このオペレーションにかかる時間はマップのサイズに正比例します。- パラメータ:
value
- このマップにあるかどうかが判定される値- 戻り値:
- このマップが1つまたは複数のキーを指定された値にマッピングしている場合は
true
- 例外:
ClassCastException
- 値がマップに適さない型の場合(オプション)NullPointerException
- 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)
-
get
V get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。より正式には、このマップにキー
k
からObjects.equals(key, k)
のような値v
へのマッピングが含まれている場合、このメソッドはv
を返します; それ以外の場合は、null
を返します。 (このようなマッピングは1つのみ存在できます。)このマップがnull値を許可する場合、戻り値の
null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップすることもあります。containsKey
操作を使うと、これら2つのケースを見分けることができます。- パラメータ:
key
- 関連付けられた値が返されるキー- 戻り値:
- 指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合は
null
- 例外:
ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
-
put
V put(K key, V value)
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。m.containsKey(k)
がtrue
を返す場合に限り、マップm
はキーk
のマッピングを含むと言えます。- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値- 戻り値:
key
に以前に関連付けられていた値。key
のマッピングが存在しなかった場合はnull
。 (実装がnull
値をサポートしている場合、戻り値null
は、以前にマップがnull
とkey
を関連付けていたことを示す場合もある。)- 例外:
UnsupportedOperationException
-put
オペレーションがこのマップでサポートされない場合ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたキーまたは値がnullであり、このマップがnullのキーまたは値を許可しない場合IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
-
remove
V remove(Object key)
このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップに、k
からObjects.equals(key, k)
のような値v
へのマッピングが含まれている場合、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合は
null
を返します。このマップがnull値を許可する場合、戻り値の
null
は、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップしていた可能性もあります。呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。
- パラメータ:
key
- マッピングがマップから削除されるキー- 戻り値:
key
に以前に関連付けられていた値。key
のマッピングが存在しなかった場合はnull
。- 例外:
UnsupportedOperationException
-remove
オペレーションがこのマップでサポートされない場合ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
-
putAll
void putAll(Map<? extends K,? extends V> m)
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 この呼出しの効果は、指定されたマップ内のキーk
から値v
へのマッピングごとに、このマップに対してput(k, v)
を1回呼び出した場合と同じです。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。- パラメータ:
m
- このマップに格納されるマッピング- 例外:
UnsupportedOperationException
-putAll
オペレーションがこのマップでサポートされない場合ClassCastException
- 指定されたマップ内のキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたマップがnullである場合、またはこのマップがnullのキーまたは値を許可せず、指定されたマップにnullのキーまたは値が含まれている場合IllegalArgumentException
- 指定されたマップ内のキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
-
clear
void clear()
マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。- 例外:
UnsupportedOperationException
-clear
オペレーションがこのマップでサポートされない場合
-
keySet
Set<K> keySet()
このマップに含まれるキーのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremove
オペレーションを除く)。 セットは要素の削除をサポートします。Iterator.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<Map.Entry<K,V>> 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
は同じマッピングを表します。 これにより、Map
インタフェースの実装が異なる場合でも、equals
メソッドが正しく動作することが保証されます。- オーバーライド:
equals
、クラスObject
- パラメータ:
o
- このマップと等しいかどうかが比較されるオブジェクト- 戻り値:
- 指定されたオブジェクトがこのマップと等しい場合は
true
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
int hashCode()
マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、そのマップのentrySet()
ビュー内の各エントリのハッシュ・コードの合計になるように定義されます。 これにより、Object.hashCode()
の一般規約によって要求されるように、任意の2つのマップm1
とm2
でm1.equals(m2)
であれば、m1.hashCode()==m2.hashCode()
となることが保証されます。- オーバーライド:
hashCode
、クラスObject
- 戻り値:
- マップのハッシュ・コード値
- 関連項目:
Map.Entry.hashCode()
,Object.equals(Object)
,equals(Object)
-
getOrDefault
default V getOrDefault(Object key, V defaultValue)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
を返します。- 実装要件:
- デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 関連付けられた値が返されるキーdefaultValue
- キーのデフォルト・マッピング- 戻り値:
- 指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない場合は
defaultValue
- 例外:
ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)- 導入されたバージョン:
- 1.8
-
forEach
default void forEach(BiConsumer<? super K,? super V> action)
このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。for (Map.Entry<K, V> entry : map.entrySet()) action.accept(entry.getKey(), entry.getValue());
- パラメータ:
action
- 各エントリに対して実行されるアクション- 例外:
NullPointerException
- 指定されたアクションがnullである場合ConcurrentModificationException
- 削除するエントリが反復中に見つからない場合- 導入されたバージョン:
- 1.8
-
replaceAll
default void replaceAll(BiFunction<? super K,? super V,? extends V> function)
すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。 関数によってスローされた例外は、呼出し側に中継されます。- 実装要件:
この
map
では、デフォルト実装は次と同等です。for (Map.Entry<K, V> entry : map.entrySet()) entry.setValue(function.apply(entry.getKey(), entry.getValue()));
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
function
- 各エントリに適用する関数- 例外:
UnsupportedOperationException
-set
オペレーションがこのマップのエントリ・セット・イテレータでサポートされない場合。ClassCastException
- 置換値のクラスが、置換値がこのマップに格納されることを妨げる場合NullPointerException
- 指定された関数がnullの場合、または指定された置換値がnullでこのマップがnull値を許可しない場合ClassCastException
- 置換値の型がこのマップに不適切な場合(オプション)NullPointerException
- 関数または置換値がnullで、このマップがnullキーまたは値を許可しない場合(オプション)IllegalArgumentException
- 置換値のなんらかのプロパティが、置換値がこのマップに格納されることを妨げる場合(オプション)ConcurrentModificationException
- 削除するエントリが反復中に見つからない場合- 導入されたバージョン:
- 1.8
-
putIfAbsent
default V putIfAbsent(K key, V value)
指定されたキーがまだ値に関連付けられていない(または、null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。V v = map.get(key); if (v == null) v = map.put(key, value); return v;
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値- 戻り値:
- 指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合は
null
。 (また、実装がnull値をサポートしている場合、戻り値null
は、以前にマップでキーとnull
が関連付けられていたことを示す場合もある。) - 例外:
UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- キーまたは値がこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーまたは値がnullであり、かつこのマップがnullのキーまたは値を許可しない場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)- 導入されたバージョン:
- 1.8
-
remove
default boolean remove(Object key, Object value)
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。if (map.containsKey(key) && Objects.equals(map.get(key), value)) { map.remove(key); return true; } else return false;
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられていると予想される値- 戻り値:
- 値が削除された場合は
true
- 例外:
UnsupportedOperationException
-remove
操作がこのマップでサポートされない場合(オプション)ClassCastException
- キーまたは値がこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーまたは値がnullであり、かつこのマップがnullのキーまたは値を許可しない場合(オプション)- 導入されたバージョン:
- 1.8
-
replace
default boolean replace(K key, V oldValue, V newValue)
指定されたキーが指定された値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。if (map.containsKey(key) && Objects.equals(map.get(key), value)) { map.put(key, newValue); return true; } else return false;
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 指定された値が関連付けられるキーoldValue
- 指定されたキーに関連付けられていると予想される値newValue
- 指定されたキーに関連付けられる値- 戻り値:
- 値が置換された場合は
true
- 例外:
UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれを格納できない場合NullPointerException
- 指定されたキーまたはnewValueがnullで、このマップがnullキーまたは値を許可しない場合NullPointerException
- oldValueがnullで、このマップがnull値を許可しない場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、それをこのマップに格納できない場合- 導入されたバージョン:
- 1.8
-
replace
default V replace(K key, V value)
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。- 実装要件:
- この
map
では、デフォルト実装は次と同等です。if (map.containsKey(key)) { return map.put(key, value); } else return null;
デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。
- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値- 戻り値:
- 指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合は
null
。 (また、実装がnull値をサポートしている場合、戻り値null
は、以前にマップでキーとnull
が関連付けられていたことを示す場合もある。) - 例外:
UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)NullPointerException
- このマップがnullキーやnull値を許可しないときに、指定されたキーまたは値がnullの場合IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合- 導入されたバージョン:
- 1.8
-
computeIfAbsent
default V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
指定されたキーがまだ値に関連付けられていない(またはnull
にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null
でない場合はそれをこのマップに入力します。マッピング関数が
null
を返した場合、マッピングは記録されません。 マッピング関数自体が(unchecked)例外をスローすると、例外は再スローされ、マッピングは記録されません。 もっとも一般的な用途は、次のように初期のマップされた値またはメモ化された結果として機能する新しいオブジェクトを構築することです。map.computeIfAbsent(key, k -> new Value(f(k)));
または、1つのキーで複数の値をサポートする複数値マップ
Map<K,Collection<V>>
を実装することです。map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
マッピング関数は、計算中にこのマップを変更すべきではありません。
- 実装要件:
- デフォルト実装は、この
map
の次のステップと同等であり、その後現在の値を返します。存在しない場合はnull
を返します。if (map.get(key) == null) { V newValue = mappingFunction.apply(key); if (newValue != null) map.put(key, newValue); }
デフォルトの実装では、計算中にマッピング関数がこのマップを変更するかどうかを検出し、必要に応じてエラーを報告することは保証されません。 並行していない実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、マッピング関数が計算中にこのマップを変更することが検出された場合は
ConcurrentModificationException
をスローします。 同時の実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、マッピング関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateException
をスローする必要があります。デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェース
ConcurrentMap
のすべての実装では、値が存在しない場合に限り、マッピング関数が一度アトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
key
- 指定された値が関連付けられるキーmappingFunction
- 値をコンピュートするマッピング関数- 戻り値:
- 指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
- 例外:
NullPointerException
- 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはmappingFunctionがnullである場合UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)- 導入されたバージョン:
- 1.8
-
computeIfPresent
default V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。リマッピング関数が
null
を返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
- 実装要件:
- デフォルト実装は、この
map
に対して以下のステップを実行してから現在の値(今は存在しない場合はnull
)を返すことと同等です。if (map.get(key) != null) { V oldValue = map.get(key); V newValue = remappingFunction.apply(key, oldValue); if (newValue != null) map.put(key, newValue); else map.remove(key); }
デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、
ConcurrentModificationException
をスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateException
をスローする必要があります。デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェース
ConcurrentMap
のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
key
- 指定された値が関連付けられるキーremappingFunction
- 値をコンピュートするための再マップ関数- 戻り値:
- 指定されたキーに関連付けられる新しい値。存在しない場合はnull
- 例外:
NullPointerException
- 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはremappingFunctionがnullである場合UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)- 導入されたバージョン:
- 1.8
-
compute
default V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull
)。 たとえば、次のように、値のマッピングにString
msgを作成または追加します。map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
merge()
メソッドは、多くの場合、より単純です。)再マッピング関数が
null
を返した場合、マッピングは削除されます。(最初に欠席した場合は不在のままです)。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
- 実装要件:
- デフォルト実装は、この
map
の次のステップの実行と同等であり、その後現在の値を返します。存在しない場合はnull
を返します。V oldValue = map.get(key); V newValue = remappingFunction.apply(key, oldValue); if (oldValue != null) { if (newValue != null) map.put(key, newValue); else map.remove(key); } else { if (newValue != null) map.put(key, newValue); else return null; }
デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、
ConcurrentModificationException
をスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateException
をスローする必要があります。デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェース
ConcurrentMap
のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
key
- 指定された値が関連付けられるキーremappingFunction
- 値をコンピュートするための再マップ関数- 戻り値:
- 指定されたキーに関連付けられる新しい値。存在しない場合はnull
- 例外:
NullPointerException
- 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、またはremappingFunctionがnullである場合UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)- 導入されたバージョン:
- 1.8
-
merge
default V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で関連する値を置換し、結果がnull
の場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。 たとえば、次のように、値のマッピングにString msg
を作成または追加します。map.merge(key, msg, String::concat)
リマッピング関数が
null
を返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
- 実装要件:
- デフォルト実装は、この
map
の次のステップの実行と同等であり、その後現在の値を返します。存在しない場合はnull
を返します。V oldValue = map.get(key); V newValue = (oldValue == null) ? value : remappingFunction.apply(oldValue, value); if (newValue == null) map.remove(key); else map.put(key, newValue);
デフォルトの実装では、再マップ関数が計算中にこのマップを変更し、適切な場合はエラーを報告するかどうかを検出することは保証されません。 非同期実装では、このメソッドをオーバーライドする必要があります。ベスト・エフォート・ベースでは、再マップ関数が計算中にこのマップを変更することが検出された場合、
ConcurrentModificationException
をスローします。 並行実装では、このメソッドをオーバーライドし、ベスト・エフォート・ベースで、再マップ関数が計算中にこのマップを変更し、結果として計算が完了しないことが検出された場合はIllegalStateException
をスローする必要があります。デフォルト実装は、このメソッドの同期または原子性プロパティに関してなにも保証しません。 原子性保証を提供するすべての実装は、このメソッドをオーバーライドし、その並行性プロパティをドキュメント化する必要があります。 特に、サブインタフェース
ConcurrentMap
のすべての実装では、値が存在しない場合に限って再マッピング関数がアトミックに適用されるかどうかを記録する必要があります。 - パラメータ:
key
- 結果値が関連付けられるキーvalue
- キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値remappingFunction
- 存在する場合に値を再計算するための再マッピング関数- 戻り値:
- 指定されたキーに関連付けられた新しい値。キーに値が関連付けられなかった場合はnull
- 例外:
UnsupportedOperationException
-put
操作がこのマップでサポートされない場合(オプション)ClassCastException
- 指定されたキーまたは値のクラスが、それらがこのマップに格納されるのを妨げる場合(オプション)IllegalArgumentException
- 指定されたキーまたは値のなんらかのプロパティが、それらがこのマップに格納されるのを妨げる場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーをサポートしない場合、あるいは値またはremappingFunctionがnullである場合- 導入されたバージョン:
- 1.8
-
of
static <K,V> Map<K,V> of()
ゼロ・マッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- 戻り値:
- 空の
Map
- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1)
単一のマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- マッピング・キーv1
- マッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
NullPointerException
- キーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2)
2つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- キーが重複している場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3)
3つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4)
4つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5)
5つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6)
6つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値k6
- 6番目のマッピング・キーv6
- 第6のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7)
7つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値k6
- 6番目のマッピング・キーv6
- 第6のマッピング値k7
- 第7のマッピング・キーv7
- 第7のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8)
8つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値k6
- 6番目のマッピング・キーv6
- 第6のマッピング値k7
- 第7のマッピング・キーv7
- 第7のマッピング値k8
- 第8のマッピング・キーv8
- 第8マッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9)
9つのマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値k6
- 6番目のマッピング・キーv6
- 第6のマッピング値k7
- 第7のマッピング・キーv7
- 第7のマッピング値k8
- 第8のマッピング・キーv8
- 第8マッピング値k9
- 第9のマッピング・キーv9
- 第9のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
of
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)
10個のマッピングを含む変更不可能なマップを返します。 詳細については、「変更不可能なマップ」を参照してください。- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
k1
- 最初のマッピング・キーv1
- 最初のマッピング値k2
- 第2のマッピング・キーv2
- 第2のマッピング値k3
- 第3のマッピング・キーv3
- 第3のマッピング値k4
- 第4のマッピング・キーv4
- 第4のマッピング値k5
- 第5のマッピング・キーv5
- 第5のマッピング値k6
- 6番目のマッピング・キーv6
- 第6のマッピング値k7
- 第7のマッピング・キーv7
- 第7のマッピング値k8
- 第8のマッピング・キーv8
- 第8マッピング値k9
- 第9のマッピング・キーv9
- 第9のマッピング値k10
- 第10のマッピング・キーv10
- 第10のマッピング値- 戻り値:
- 指定されたマッピングを含む
Map
- 例外:
IllegalArgumentException
- 重複するキーがある場合NullPointerException
- 任意のキーまたは値がnull
の場合- 導入されたバージョン:
- 9
-
ofEntries
@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
- 関連項目:
Map.entry()
-
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です。 呼び出し側は、返されたインスタンスのアイデンティティについては何も仮定しないでください。 このメソッドは、新しいインスタンスを作成したり、既存のインスタンスを再利用することは自由です。 したがって、これらのインスタンス(参照平等(
==
)、アイデンティティ・ハッシュ・コード、および同期)でのアイデンティティ依存型操作は信頼性が低く、避ける必要があります。
- APIのノート:
- 直列化可能な
Entry
については、AbstractMap.SimpleEntry
またはAbstractMap.SimpleImmutableEntry
を参照してください。 - 型パラメータ:
K
- キー型V
- 値の型- パラメータ:
k
- キーv
- 値- 戻り値:
- 指定されたキーと値を含む
Entry
- 例外:
NullPointerException
キーまたは値がnull
の場合- 導入されたバージョン:
- 9
- 関連項目:
Map.ofEntries()
- それらは
-
copyOf
static <K,V> Map<K,V> copyOf(Map<? extends K,? extends V> map)
指定されたMapのエントリを含む「変更不可能なマップ」を返します。 指定されたMapはnullであってはならず、nullキーまたは値を含んではいけません。 指定されたMapがその後に変更された場合、返されたMapはそのような変更を反映しません。- 実装上のノート:
- 指定されたMapが「変更不可能なマップ」の場合、copyOfを呼び出すと、一般にコピーは作成されません。
- 型パラメータ:
K
-Map
キー型V
-Map
値の型- パラメータ:
map
- エントリが描画されるMap
はnullでなくてはなりません- 戻り値:
- 与えられた
Map
のエントリを含むMap
- 例外:
NullPointerException
- mapがnullの場合、またはnullキーまたは値が含まれている場合- 導入されたバージョン:
- 10
-
-