モジュール 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メソッドが実装されている場合は値を変更できます。 エントリは、マップから独立しているか、マップの入力セット・ビューのエントリを表す場合があります。

エントリは、Iteratorを使用して明示的に、または拡張されたfor文を介して暗黙的に、マップのMap.entrySet()ビューを反復することによってエントリが取得された場合、その基礎となるマップへの接続を維持します。 このバッキング・マップへの接続は、エントリ・セット・ビューの反復中に有効なonlyです。 反復中に、バッキング・マップでサポートされている場合、setValueメソッドを介したエントリの値への変更は、バッキング・マップに表示されます。 このようなエントリの動作は、マップのエントリ・セット・ビューの反復外では未定義です。 また、setValueメソッド以外で、エントリがイテレータによって返された後にバッキング・マップが変更された場合も、未定義です。 また、バッキング・マップのマッピングの値の変更は、エントリ・セット・ビューの対応するエントリに表示される場合と表示されない場合があります。

エントリは、parallelStreamstreamspliteratorメソッド、任意の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
関連項目: