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

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

型パラメータ:
K - キーのタイプ
V - 値の型
既知のすべての実装クラス:
AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry
含まれているインタフェース:
Map<K,V>

public static interface Map.Entry<K,V>
マップのエントリ(キーと値のペア)です。 エントリは変更不可であるか、オプションのsetValueメソッドが実装されている場合は値を変更できます。 エントリは、マップから独立しているか、マップの入力セット・ビューのエントリを表す場合があります。

Map.Entryインタフェースのインスタンスは、マップのエントリ・セット・ビューを反復処理することで取得できます。 これらのインスタンスは、元のバッキング・マップへの接続を維持します。 このバッキング・マップへの接続は、エントリ・セット・ビューに対する反復期間中、有効なonlyです。 エントリ・セット・ビューの繰返し中、バッキング・マップでサポートされている場合、setValueメソッドを介したMap.Entryの値の変更はバッキング・マップに表示されます。 このようなMap.Entryインスタンスの動作は、マップ・エントリ・セット・ビューの反復の外部では定義されていません。 また、Map.Entry.setValueメソッドを除き、Map.Entryがイテレータによって返された後にバッキング・マップが変更された場合も未定義です。 特に、バッキング・マップ内のマッピング値の変更は、エントリ・セット・ビューの対応するMap.Entry要素に表示されない場合があります。

APIのノート:
copyOfメソッドを使用して、バッキング・マップから切断されたMap.Entryインスタンスを作成できます。 たとえば、次のマップでは、元のマップが変更されても変更されないことが保証されたマップ・エントリのスナップショットが作成されます:
 
 var entries = map.entrySet().stream().map(Map.Entry::copyOf).toList()
 
導入されたバージョン:
1.2
関連項目:
  • メソッドの詳細

    • getKey

      K getKey()
      このエントリに対応するキーを返します。
      戻り値:
      このエントリに対応するキー
      例外:
      IllegalStateException - 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
    • getValue

      V getValue()
      このエントリに対応する値を返します。 バッキング・マップ (イテレータのremove操作)からマッピングが削除された場合、このコールの結果は未定義です。
      戻り値:
      このエントリに対応する値
      例外:
      IllegalStateException - 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
    • setValue

      V setValue(V value)
      このエントリに対応する値を、指定された値に置き換えます(オプションの操作)。 マップに書き込みます。 マッピングがすでにマップ(イテレータのremove操作)から削除されている場合、このコールの動作は未定義です。
      パラメータ:
      value - このエントリに格納される新しい値
      戻り値:
      エントリに対応する以前の値
      例外:
      UnsupportedOperationException - put操作がバッキング・マップでサポートされていない場合
      ClassCastException - 指定された値のクラスが原因で、基となるマップにその値を格納できない場合
      NullPointerException - 基となるマップがnull値を許可せず、指定された値がnullである場合
      IllegalArgumentException - この値の一部のプロパティが原因で、基となるマップにその値を格納できない場合
      IllegalStateException - 実装は、このエントリがその基になるマップから削除されている場合にこの例外をスローできる。ただし、必須ではない。
    • equals

      boolean equals(Object o)
      指定されたオブジェクトがエントリと等しいかどうかを比較します。 指定されたオブジェクトもマップ・エントリであり、2つのエントリが同じマッピングを表す場合はtrueを返します。 つまり、2つのエントリe1e2は、次のようになる場合に同じマッピングを表します。
           (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メソッドが正しく動作することが保証されます。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      o - このマップ・エントリと等しいかどうかが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのマップ・エントリと等しい場合はtrue
      関連項目:
    • 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()であることを意味します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このマップ・エントリのハッシュ・コード値
      関連項目:
    • 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

      static <K, V> Map.Entry<K,V> copyOf(Map.Entry<? extends K,? extends V> e)
      指定されたMap.Entryのコピーを返します。 返されたインスタンスはどのマップにも関連付けられていません。 返されるインスタンスの特性は、Map::entryメソッドによって返されるインスタンスと同じです。
      APIのノート:
      マップ・エントリ・セット・ビューから取得されたインスタンスには、そのマップへの接続があります。 copyOfメソッドを使用して、同じキーと値を含むMap.Entryインスタンスを作成できます。これは、どのマップからも独立しています。
      実装上のノート:
      指定されたエントリがcopyOfまたはMap::entryの呼び出しから取得された場合、copyOfを呼び出しても通常は別のコピーは作成されません。
      型パラメータ:
      K - キーのタイプ
      V - 値の型
      パラメータ:
      e - コピーするエントリ
      戻り値:
      指定されたエントリと同じマップ・エントリ
      例外:
      NullPointerException - eがNULLか、そのキーまたは値のいずれかがNULLである場合
      導入されたバージョン:
      17