- 型パラメータ:
K- キーのタイプV- 値の型
- 既知のすべての実装クラス:
AbstractMap.SimpleEntry,AbstractMap.SimpleImmutableEntry
setValueメソッドが実装されている場合は値を変更できます。 エントリは、マップから独立しているか、マップの入力セット・ビューのエントリを表す場合があります。
エントリは、Iteratorを使用して明示的に、または拡張されたfor文を介して暗黙的に、マップのMap.entrySet()ビューを反復することによってエントリが取得された場合、その基礎となるマップへの接続を維持します。 このバッキング・マップへの接続は、エントリ・セット・ビューの反復中に有効なonlyです。 反復中に、バッキング・マップでサポートされている場合、setValueメソッドを介したエントリの値への変更は、バッキング・マップに表示されます。 このようなエントリの動作は、マップのエントリ・セット・ビューの反復外では未定義です。 また、setValueメソッド以外で、エントリがイテレータによって返された後にバッキング・マップが変更された場合も、未定義です。 また、バッキング・マップのマッピングの値の変更は、エントリ・セット・ビューの対応するエントリに表示される場合と表示されない場合があります。
エントリは、parallelStream、stream、spliteratorメソッド、任意のtoArrayオーバーロード、またはエントリ・セット・ビューを別のコレクションにコピーすることによって、マップのエントリ・セット・ビューからも取得できます。 取得したエントリ・インスタンスが基礎となるマップに接続されているかどうか、そのようなエントリへの変更がマップの基になるものに影響するかどうか、またはその逆、およびそのようなエントリがオプションのsetValueメソッドをサポートしているかどうかは不特定です。
また、エントリはマップから直接取得できます。たとえば、NavigableMapインタフェースでメソッドへの直接呼出しを介して取得できます。 このように取得されたエントリは、通常はマップに接続されず、コール時点でのマッピングの変更不可のスナップショットです。 このようなエントリでは、通常、setValueメソッドもサポートされません。
AbstractMap.SimpleEntryまたはAbstractMap.SimpleImmutableEntryクラスの直接構築、またはMap.entryまたはMap.Entry.copyOfメソッドへのコールによって取得されたエントリは、どのマップにも接続されません。
- APIのノート:
- 反復以外のマップのエントリ・セット・ビューから取得したエントリ・インスタンスの正確な動作は、様々なマップ実装によって異なります。一部はバッキング・マップに接続され、一部はそうではありません。 エントリがそのバッキング・マップから切断されるようにするには、
copyOfメソッドを使用します。 たとえば、次のマップでは、元のマップが変更されても変更されないことが保証されたマップ・エントリのスナップショットが作成されます:var entries = map.entrySet().stream().map(Map.Entry::copyOf).toList() - 導入されたバージョン:
- 1.2
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明static <K extends Comparable<? super K>,V>
Comparator<Map.Entry<K, V>> キーの自然順序でMap.Entryを比較するコンパレータを返します。static <K,V> Comparator <Map.Entry<K, V>> comparingByKey(Comparator<? super K> cmp) 指定されたComparatorを使用してキーでMap.Entryを比較するコンパレータを返します。static <K,V extends Comparable<? super V>>
Comparator<Map.Entry<K, V>> 値の自然順序でMap.Entryを比較するコンパレータを返します。static <K,V> Comparator <Map.Entry<K, V>> comparingByValue(Comparator<? super V> cmp) 指定されたComparatorを使用して値でMap.Entryを比較するコンパレータを返します。static <K,V> Map.Entry <K, V> 指定されたMap.Entryのコピーを返します。boolean指定されたオブジェクトがエントリと等しいかどうかを比較します。getKey()このエントリに対応するキーを返します。getValue()このエントリに対応する値を返します。inthashCode()このマップ・エントリのハッシュ・コード値を返します。このエントリに対応する値を、指定された値に置き換えます(オプションの操作)。
-
メソッドの詳細
-
getKey
K getKey()このエントリに対応するキーを返します。- 戻り値:
- このエントリに対応するキー
- スロー:
IllegalStateException- 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
-
getValue
V getValue()このエントリに対応する値を返します。 バッキング・マップ (イテレータのremove操作)からマッピングが削除された場合、このコールの結果は未定義です。- 戻り値:
- このエントリに対応する値
- スロー:
IllegalStateException- 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
-
setValue
このエントリに対応する値を、指定された値に置き換えます(オプションの操作)。 マップに書き込みます。 マッピングがすでにマップ(イテレータのremove操作)から削除されている場合、このコールの動作は未定義です。- パラメータ:
value- このエントリに格納される新しい値- 戻り値:
- エントリに対応する以前の値
- スロー:
UnsupportedOperationException-put操作がバッキング・マップでサポートされていない場合ClassCastException- 指定された値のクラスが原因で、基となるマップにその値を格納できない場合NullPointerException- 基となるマップがnull値を許可せず、指定された値がnullである場合IllegalArgumentException- この値の一部のプロパティが原因で、基となるマップにその値を格納できない場合IllegalStateException- 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
-
equals
boolean equals(Object o) 指定されたオブジェクトがエントリと等しいかどうかを比較します。 指定されたオブジェクトもマップ・エントリであり、2つのエントリが同じマッピングを表す場合はtrueを返します。 つまり、2つのエントリe1とe2は、次のようになる場合に同じマッピングを表します。(e1.getKey()==null ? e2.getKey()==null : e1.getKey().equals(e2.getKey())) && (e1.getValue()==null ? e2.getValue()==null : e1.getValue().equals(e2.getValue()))これにより、Map.Entryインタフェースの実装が異なる場合でも、equalsメソッドが正しく動作することが保証されます。 -
hashCode
int hashCode()このマップ・エントリのハッシュ・コード値を返します。 マップ・エントリeのハッシュ・コードは、次のように定義されます。(e.getKey()==null ? 0 : e.getKey().hashCode()) ^ (e.getValue()==null ? 0 : e.getValue().hashCode())これにより、Object.hashCodeの一般的な契約で必要となる2つのエントリe1およびe2に対して、e1.equals(e2)がe1.hashCode()==e2.hashCode()であることを意味します。 -
comparingByKey
static <K extends Comparable<? super K>,V> Comparator<Map.Entry<K,V>> comparingByKey()キーの自然順序でMap.Entryを比較するコンパレータを返します。返されるコンパレータは直列化可能で、エントリとnullキーを比較したときに
NullPointerExceptionをスローします。- 型パラメータ:
K- マップ・キーのComparable型V- マップ値の型- 戻り値:
- キーの自然順序で
Map.Entryを比較するコンパレータ。 - 導入されたバージョン:
- 1.8
- 関連項目:
-
comparingByValue
static <K,V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()値の自然順序でMap.Entryを比較するコンパレータを返します。返されるコンパレータは直列化可能で、エントリとnull値を比較したときに
NullPointerExceptionをスローします。- 型パラメータ:
K- マップ・キーの型V- マップ値のComparable型- 戻り値:
- 値の自然順序で
Map.Entryを比較するコンパレータ。 - 導入されたバージョン:
- 1.8
- 関連項目:
-
comparingByKey
static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp) 指定されたComparatorを使用してキーでMap.Entryを比較するコンパレータを返します。指定されたコンパレータが直列化可能の場合、返されるコンパレータも直列化可能になります。
- 型パラメータ:
K- マップ・キーの型V- マップ値の型- パラメータ:
cmp- キーのComparator- 戻り値:
- キーで
Map.Entryを比較するコンパレータ。 - 導入されたバージョン:
- 1.8
-
comparingByValue
static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp) 指定されたComparatorを使用して値でMap.Entryを比較するコンパレータを返します。指定されたコンパレータが直列化可能の場合、返されるコンパレータも直列化可能になります。
- 型パラメータ:
K- マップ・キーの型V- マップ値の型- パラメータ:
cmp- 値Comparator- 戻り値:
- 値で
Map.Entryを比較するコンパレータ。 - 導入されたバージョン:
- 1.8
-
copyOf
指定されたMap.Entryのコピーを返します。 返されたインスタンスはどのマップにも関連付けられていません。 返されるインスタンスの特性は、Map::entryメソッドによって返されるインスタンスと同じです。- APIのノート:
- マップ・エントリ・セット・ビューから取得されたインスタンスには、そのマップへの接続があります。
copyOfメソッドを使用して、同じキーと値を含むMap.Entryインスタンスを作成できます。これは、どのマップからも独立しています。 - 実装上のノート:
- 指定されたエントリが
copyOfまたはMap::entryの呼び出しから取得された場合、copyOfを呼び出しても通常は別のコピーは作成されません。 - 型パラメータ:
K- キーのタイプV- 値の型- パラメータ:
e- コピーするエントリ- 戻り値:
- 指定されたエントリと同じマップ・エントリ
- スロー:
NullPointerException- eがNULLか、そのキーまたは値のいずれかがNULLである場合- 導入されたバージョン:
- 17
-