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

インタフェースSequencedMap<K,V>

型パラメータ:
K - このマップで保持されるキーの型
V - マップされる値の型
すべてのスーパー・インタフェース:
Map<K,V>
既知のすべてのサブインタフェース:
ConcurrentNavigableMap<K,V>, NavigableMap<K,V>, SortedMap<K,V>
既知のすべての実装クラス:
ConcurrentSkipListMap, LinkedHashMap, TreeMap

public interface SequencedMap<K,V> extends Map<K,V>
検出順序が明確に定義され、両端での操作をサポートし、逆転可能なマップ。 SequencedMap「見つける」は、SequencedCollectionの要素の「見つける」と似ていますが、順序付けは個々の要素ではなくマッピングに適用されます。

このマップでのバルク操作(forEachおよびreplaceAllメソッドを含む)は、このマップのマッピングを検出順に操作します。

keySetvaluesentrySetsequencedKeySetsequencedValuesおよびsequencedEntrySetメソッドによって提供されるビュー・コレクションは、すべてこのマップの出現順序を反映しています。 keySetvaluesおよびentrySetメソッドの戻り値はtypesの順序付けではありませんが、これらのビュー・コレクションの要素は、このマップの出現順序を反映します。 したがって、ステートメントによって返されるイテレータです

    var it1 = sequencedMap.entrySet().iterator();
    var it2 = sequencedMap.sequencedEntrySet().iterator();
両方とも、sequencedMapのマッピングをそのマップの出現順に指定します。

このインタフェースには、マッピングの追加、マッピングの取得、およびマップの検索順序のいずれかの端にあるマッピングの削除を行うメソッドがあります。

このインタフェースは、このマップの逆順viewを提供するreversed()メソッドも定義します。 順序の逆のビューでは、後任者と前任者の概念と同様に、最初と最後の概念が反転します。 このマップの最初のマッピングは、順序が逆のビューの最後のマッピングです。その逆も同様です。 このマップ内の一部のマッピングの後継は、逆方向ビューの先行作業です。その逆も同様です。 マップの出現順序を尊重するすべてのメソッドは、発生順序が反転しているかのように動作します。 たとえば、逆方向ビューのforEachメソッドは、このマップの最後のマッピングから最初のマッピングの順にマッピングをレポートします。 また、逆方向ビューのすべてのビュー・コレクションには、このマップの出現順序の逆も反映されます。 たとえば、

    var itr = sequencedMap.reversed().entrySet().iterator();
、このマップのマッピングを検出順序の逆、つまり最後のマッピングから最初のマッピングへの逆になります。 reversedメソッドの可用性と、適用可能なすべてのメソッドおよびビューの順序付けセマンティクスへの影響により、このマップのマッピングを順方向または逆順で簡単に反復、検索、コピーおよびストリーミングできます。

マップの逆順ビューは通常、元のマップが直列化可能であっても、直列化可能ではありません。

Map.entrySet()ビュー、sequencedEntrySet()ビューおよびその逆順ビューを反復して取得されたMap.Entryインスタンスは、基礎となるマップへの接続を維持します。 この接続は反復中にのみ保証されます。 接続が反復の外部で維持されるかどうかは不確定です。 基礎となるマップで許可されている場合、エントリのsetValueメソッドをコールすると、基礎となるマッピングの値が変更されます。 ただし、基礎となるマッピングの値に対する変更がEntryインスタンスに表示されるかどうかは未指定です。

メソッドfirstEntry()lastEntry()pollFirstEntry()およびpollLastEntry()は、コール時点でのマッピングのスナップショットを表すMap.Entryインスタンスを返します。 オプションのsetValueメソッドを介した基礎となるマップの変更はサポートされていません。

実装によっては、他の方法で返されるEntryインスタンスが、基礎となるマップに接続される場合と、そうでない場合があります。 たとえば、次の方法で取得したEntryについて考えてみます:

    var entry = sequencedMap.sequencedEntrySet().getFirst();
このインタフェースでは、取得したEntrysetValueメソッドが基礎となるマップのマッピングを更新するか、例外をスローするか、基礎となるマップへの変更をそのEntryで参照できるかは指定されません。

このインタフェースの要件は、Map.equalsおよびMap.hashCodeで定義されているequalsおよびhashCodeメソッドと同じです。 したがって、MapSequencedMapは、順序に関係なく、マッピングが等しい場合にのみ等価を比較します。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
21