モジュール 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
  • メソッドの詳細

    • reversed

      SequencedMap<K,V> reversed()
      このマップの逆順viewを返します。 返されるビューでのマッピングの検出順序は、このマップでのマッピングの検出順序の逆です。 逆の順序付けは、返されるビューのビュー・コレクションに含まれるすべての順序依存操作に影響します。 実装でこのビューの変更が許可されている場合は、基礎となるマップに"ライトスルー"が変更されます。 実装によっては、基礎となるマップに対する変更が、この逆方向ビューに表示される場合と表示されない場合があります。
      戻り値:
      このマップの逆順ビュー
    • firstEntry

      default Map.Entry<K,V> firstEntry()
      このマップの最初のキーと値のマッピングを返します。マップが空の場合はnullを返します。
      実装要件:
      このインタフェースの実装では、このマップのentrySetのイテレータが取得されます。 イテレータに要素がある場合、その要素の変更不可のコピーが返されます。 それ以外の場合は、nullを返します。
      戻り値:
      最初のキー/値マッピング、またはこのマップが空の場合はnull
    • lastEntry

      default Map.Entry<K,V> lastEntry()
      このマップの最後のキーと値のマッピングを返します。マップが空の場合はnullを返します。
      実装要件:
      このインタフェースの実装では、このマップの逆方向表示のentrySetのイテレータが取得されます。 イテレータに要素がある場合、その要素の変更不可のコピーが返されます。 それ以外の場合は、nullを返します。
      戻り値:
      最後のキーと値のマッピング、またはこのマップが空の場合はnull
    • pollFirstEntry

      default Map.Entry<K,V> pollFirstEntry()
      このマップの最初のキー値マッピングを削除して返します。マップが空の場合はnullを返します。 (オプションの操作)。
      実装要件:
      このインタフェースの実装では、このマップのentrySetのイテレータが取得されます。 イテレータに要素がある場合、イテレータでremoveをコールし、その要素の変更不可のコピーを返します。 それ以外の場合は、nullを返します。
      戻り値:
      このマップの削除された最初のエントリ。このマップが空の場合はnull
      例外:
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない場合
    • pollLastEntry

      default Map.Entry<K,V> pollLastEntry()
      このマップの最後のキー/値マッピングを削除して返します。マップが空の場合はnullを返します。 (オプションの操作)。
      実装要件:
      このインタフェースの実装では、このマップの逆方向表示のentrySetのイテレータが取得されます。 イテレータに要素がある場合、イテレータでremoveをコールし、その要素の変更不可のコピーを返します。 それ以外の場合は、nullを返します。
      戻り値:
      このマップの削除された最後のエントリ。このマップが空の場合はnull
      例外:
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない場合
    • putFirst

      default V putFirst(K k, V v)
      指定されたマッピングがまだ存在しない場合はマップに挿入し、すでに存在する場合はマッピングの値を置換します (オプションの操作)。 この操作が正常に完了すると、指定されたマッピングがこのマップに存在し、このマップの出現順序の最初のマッピングになります。
      実装要件:
      このインタフェースの実装では、常にUnsupportedOperationExceptionがスローされます。
      パラメータ:
      k - キー
      v - 値
      戻り値:
      以前kに関連付けられていた値。関連付けられていない場合はnull
      例外:
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない場合
    • putLast

      default V putLast(K k, V v)
      指定されたマッピングがまだ存在しない場合はマップに挿入し、すでに存在する場合はマッピングの値を置換します (オプションの操作)。 この操作が正常に完了すると、指定されたマッピングがこのマップに存在し、このマップの出現順序の最後のマッピングになります。
      実装要件:
      このインタフェースの実装では、常にUnsupportedOperationExceptionがスローされます。
      パラメータ:
      k - キー
      v - 値
      戻り値:
      以前kに関連付けられていた値。関連付けられていない場合はnull
      例外:
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない場合
    • sequencedKeySet

      default SequencedSet<K> sequencedKeySet()
      このマップのkeySetSequencedSetビューを返します。
      実装要件:
      このインタフェースの実装では、次のように動作するSequencedSetインスタンスが返されます。 addおよびaddAllメソッドは、UnsupportedOperationExceptionをスローします。 reversedメソッドは、このマップのreversedビューのsequencedKeySetビューを返します。 他の各メソッドは、このマップのkeySetビューの対応するメソッドをコールします。
      戻り値:
      このマップのkeySetSequencedSetビュー
    • sequencedValues

      default SequencedCollection<V> sequencedValues()
      このマップのvaluesコレクションのSequencedCollectionビューを返します。
      実装要件:
      このインタフェースの実装では、次のように動作するSequencedCollectionインスタンスが返されます。 addおよびaddAllメソッドは、UnsupportedOperationExceptionをスローします。 reversedメソッドは、このマップのreversedビューのsequencedValuesビューを返します。 equalsおよびhashCodeメソッドは、Objectから継承されます。 他の各メソッドは、このマップのvaluesビューの対応するメソッドをコールします。
      戻り値:
      このマップのvaluesコレクションのSequencedCollectionビュー
    • sequencedEntrySet

      default SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
      このマップのentrySetSequencedSetビューを返します。
      実装要件:
      このインタフェースの実装では、次のように動作するSequencedSetインスタンスが返されます。 addおよびaddAllメソッドは、UnsupportedOperationExceptionをスローします。 reversedメソッドは、このマップのreversedビューのsequencedEntrySetビューを返します。 他の各メソッドは、このマップのentrySetビューの対応するメソッドをコールします。
      戻り値:
      このマップのentrySetSequencedSetビュー