インタフェースSortedSet<E>

型パラメータ:
E - このセットによって保守される要 のタイプ
すべてのスーパー・インタフェース:
Collection<E>, Iterable<E>, SequencedCollection<E>, SequencedSet<E>, Set<E>
既知のすべてのサブインタフェース:
NavigableSet<E>
既知のすべての実装クラス:
ConcurrentSkipListSet, TreeSet

public interface SortedSet<E> extends Set<E>, SequencedSet<E>
その要 に対して全体 序付けを提供するSetです。 要 の 序付けは、その自然 序付けに従って行われるか、セット構築時に通常提供されるComparatorを使って行われます。 セットのイテレータは、セットを要 の昇 でトラバースします。 その 序付けを利用するために、追 のオペレーションがいくつか提供されています。 (このインタフェースはセットで、SortedMapに類似しています。)

ソートされたセットに挿入されるすべての要 は、Comparableインタフェース(または指定されたコンパレータによって受け入れられます)を実装する必要があります。 さらに、このような要 はすべて相互に比較可能である必要があります: e1.compareTo(e2) (またはcomparator.compare(e1, e2))は、ソートされたセット内の要 e1およびe2に対してClassCastExceptionをスローしないでく さい。 この制約に違反すると、その違反側のメソッドやコンストラクタの呼出しはClassCastExceptionをスローします。

ソートされたセット(明示的なコンパレータが指定されているかどうか)によって保持される 序付けは、ソートされたセットがSetインタフェースを正しく実装する 合、「等しいと一貫性」である必要があります。 (equalsとの一貫性の正確な定義については、ComparableインタフェースまたはComparatorインタフェースを参照してく さい。) これは、Setインタフェースがequals操作に関して定義されていますが、ソートされたセットでは、そのcompareTo (またはcompare)メソッドを使用してすべての要 比較が実行されるため、このメソッドで等しいとみなされる2つの要 は、ソートされたセットの観点から等しくなります。 ソートされたセットの動作は、 序付けが等しいと矛盾する 合でもよく定義されます。Setインタフェースの一般的な契約に従うことはできません。

ソートされたすべての汎用セット実装クラスは、4つの"standard"コンストラクタを提供する必要があります: 1) void (引数なし)コンストラクタ。要 の自然 序に従ってソートされた空のソート・セットを作成します。2) Comparator型の単一の引数を持つコンストラクタ。これにより、指定されたコンパレータに従ってソートされた空のソート・セットが作成されます。3)型の単一の引数を持つコンストラクタ。Collectionは、要 の自然 序に従ってソートされた、引数と同じ要 を持つ新しいソート・セットを作成します。4) SortedSet型の単一の引数を持つコンストラクタ。これにより、同じ要 を持つ新しいソート・セットが作成され、ソートされた入力セットと同じ 序付けが行われます。 この推奨を強制する方法はありません。なぜなら、インタフェースにはコンストラクタを含めることができないからです。

ノート:一部のメソッドは、制限された範囲を持つサブセットを返します。 そのような範囲は片側が開いています。つまり、それらの範囲には、下端点は含まれますが上端点は含まれません(該当する 合)。 「閉じた範囲」 (両方のエンドポイントを含む)が必要で、要 タイプで特定の値の後続を計算できる 合は、単にサブレンジをlowEndpointからsuccessor(highEndpoint)にリクエストする けです。 たとえば、sがソートされた文字列のセットであるとします。 次のidiomは、s内のすべての文字列を含むビューをlowからhighまで(包含)取得します:

   SortedSet<String> sub = s.subSet(low, high+"\0");
同様のテクニックを使って、上下端点のどちらも含まない開いた範囲を生成できます。 次のidiomは、s内のすべての文字列を含むビューを、lowからhigh (除外)で取得します:
   SortedSet<String> sub = s.subSet(low+"\0", high);

このインタフェースは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.2
関連 目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    default void
    UnsupportedOperationExceptionをスローします。
    default void
    UnsupportedOperationExceptionをスローします。
    Comparator<? super E>
    このセットの要 の 序付けに使用されるコンパレータを返します。このセットが要 の「自然 序付け」を使用する 合はnullを返します。
    セット内に現在ある最初(下端)の要 を返します。
    default E
    このコレクションの最初の要 を取得します。
    default E
    このコレクションの最後の要 を取得します。
    headSet(E toElement)
    このセットの要 がtoElementより厳密に小さい部分のビューを返します。
    セット内に現在ある最後(上端)の要 を返します。
    default E
    このコレクションの最初の要 を削除して返します(オプションの操作)。
    default E
    このコレクションの最後の要 を削除して返します(オプションの操作)。
    default SortedSet<E>
    このコレクションの逆 viewを返します。
    default Spliterator<E>
    このソート・セット内の要 に対するSpliteratorを作成します。
    subSet(E fromElement, E toElement)
    このセットの要 の範囲がfromElement、包含的、排他的、toElementである部分のビューを返します。
    tailSet(E fromElement)
    要 がfromElement以上である、このセットの一部のビューを返します。

    インタフェースjava.util.Collectionで宣言されたメソッド

    parallelStream, removeIf, stream, toArray

    インタフェースjava.lang.Iterableで宣言されたメソッド

    forEach

    インタフェースjava.util.Setで宣言されたメソッド

    add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
  • メソッドの詳細

    • comparator

      Comparator<? super E> comparator()
      このセットの要 の 序付けに使用されるコンパレータを返します。このセットが要 の「自然 序付け」を使用する 合はnullを返します。
      戻り値:
      このセットの要 の 序付けに使用されるコンパレータ。このセットで要 の自然 序付けを使用する 合はnull
    • subSet

      SortedSet<E> subSet(E fromElement, E toElement)
      このセットの要 の範囲がfromElement、包含的、排他的、toElementである部分のビューを返します。 (fromElementtoElementが等しい 合、返されるセットは空です。) 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反 され、その逆の 合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。

      返されるセットは、その範囲外の要 が挿入されようとすると、IllegalArgumentExceptionをスローします。

      パラメータ:
      fromElement - 返されるセットの下端点(これを含む)
      toElement - 返されるセットの上端点(これを含まない)
      戻り値:
      このセットのfromElement (これを含む) - toElement (これを含まない)の要 範囲を持つ部分のビュー
      スロー:
      ClassCastException - このセットのコンパレータを使用して(このセットがコンパレータを持たない 合は自然 序付けを使用して)、fromElementtoElementを相互に比較できない 合。 実装は、セット内に現在存在している要 とfromElementまたはtoElementとを比較できない 合にこの例外をスローできる。た し、必 ではない。
      NullPointerException - fromElementまたはtoElementがnullであり、このセットがnull要 を許可しない 合
      IllegalArgumentException - fromElementtoElementよりも大きい 合、またはこのセット自体が制限された範囲を持っており、fromElementまたはtoElementがその範囲から外れている 合
    • headSet

      SortedSet<E> headSet(E toElement)
      このセットの要 がtoElementより厳密に小さい部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反 され、その逆の 合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。

      返されるセットは、その範囲外の要 が挿入されようとすると、IllegalArgumentExceptionをスローします。

      パラメータ:
      toElement - 返されるセットの上端点(これを含まない)
      戻り値:
      このセットの要 が厳密にtoElementより小さい部分のビュー
      スロー:
      ClassCastException - toElementがこのセットのコンパレータと互換性がない 合(または、そのセットがコンパレータを持たない 合、toElementComparableを実装していない 合)。 実装は、セット内に現在存在している要 とtoElementとを比較できない 合にこの例外をスローできる。た し、必 ではない。
      NullPointerException - toElementがnullであり、このセットがnull要 を許可しない 合
      IllegalArgumentException - このセット自体が制限された範囲を持っており、toElementがその範囲から外れている 合
    • tailSet

      SortedSet<E> tailSet(E fromElement)
      要 がfromElement以上である、このセットの一部のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反 され、その逆の 合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。

      返されるセットは、その範囲外の要 が挿入されようとすると、IllegalArgumentExceptionをスローします。

      パラメータ:
      fromElement - 返されるセットの下端点(これを含む)
      戻り値:
      このセットのfromElementに等しいかそれよりも大きい要 を持つ部分のビュー
      スロー:
      ClassCastException - fromElementがこのセットのコンパレータと互換性がない 合(または、そのセットがコンパレータを持たない 合、fromElementComparableを実装していない 合)。 実装は、セット内に現在存在している要 とfromElementとを比較できない 合にこの例外をスローできる。た し、必 ではない。
      NullPointerException - fromElementがnullであり、このセットがnull要 を許可しない 合
      IllegalArgumentException - このセット自体が制限された範囲を持っており、fromElementがその範囲から外れている 合
    • first

      E first()
      セット内に現在ある最初(下端)の要 を返します。
      戻り値:
      セット内に現在ある最初(下端)の要 
      スロー:
      NoSuchElementException - このセットが空の 合
    • last

      E last()
      セット内に現在ある最後(上端)の要 を返します。
      戻り値:
      セット内に現在ある最後(上端)の要 
      スロー:
      NoSuchElementException - このセットが空の 合
    • spliterator

      default Spliterator<E> spliterator()
      このソート・セット内の要 に対するSpliteratorを作成します。

      Spliteratorは、Spliterator.DISTINCTSpliterator.SORTEDおよびSpliterator.ORDEREDを 告します。 実装は、追 の特性値の 告をドキュメント化する必要があります。

      ソート・セットのコンパレータ(comparator()を参照)がnullの 合、スプリッテレータのコンパレータ(Spliterator.getComparator()を参照)はnullである必要があります。 それ以外の 合、スプリッテレータのコンパレータはソート・セットのコンパレータと同じであるか、同じ全体 序付けを適用する必要があります。

      定義:
      spliterator、インタフェースCollection<E>
      定義:
      spliterator、インタフェースIterable<E>
      定義:
      spliterator、インタフェースSet<E>
      実装要件:
      デフォルト実装は、ソート・セットのIteratorから遅延バインディング・スプリッテレータを作成します。 スプリッテレータは、セットのイテレータのフェイルファスト・プロパティを継承します。 スプリッテレータのコンパレータはソート・セットのコンパレータと同じです。

      作成されたSpliteratorは、追 でSpliterator.SIZEDを 告します。

      実装上のノート:
      作成されたSpliteratorはさらにSpliterator.SUBSIZEDも 告します。
      戻り値:
      このソート・セット内の要 に対するSpliterator
      導入されたバージョン:
      1.8
    • addFirst

      default void addFirst(E e)
      UnsupportedOperationExceptionをスローします。 このセットの比較メソッドによって誘起される出現 序によって要 の位置が決定されるため、明示的な位置決めはサポートされていません。
      定義:
      インタフェースSequencedCollection<E>内のaddFirst
      実装要件:
      このインタフェースの実装では、常にUnsupportedOperationExceptionがスローされます。
      パラメータ:
      e - 追 する要 
      スロー:
      UnsupportedOperationException - 常時
      導入されたバージョン:
      21
    • addLast

      default void addLast(E e)
      UnsupportedOperationExceptionをスローします。 このセットの比較メソッドによって誘起される出現 序によって要 の位置が決定されるため、明示的な位置決めはサポートされていません。
      定義:
      インタフェースSequencedCollection<E>内のaddLast
      実装要件:
      このインタフェースの実装では、常にUnsupportedOperationExceptionがスローされます。
      パラメータ:
      e - 追 する要 。
      スロー:
      UnsupportedOperationException - 常時
      導入されたバージョン:
      21
    • getFirst

      default E getFirst()
      このコレクションの最初の要 を取得します。
      定義:
      インタフェースSequencedCollection<E>内のgetFirst
      実装要件:
      このインタフェースの実装は、firstメソッドをコールした結果を返します。
      戻り値:
      取得された要 
      スロー:
      NoSuchElementException - このコレクションが空の 合
      導入されたバージョン:
      21
    • getLast

      default E getLast()
      このコレクションの最後の要 を取得します。
      定義:
      インタフェースSequencedCollection<E>内のgetLast
      実装要件:
      このインタフェースの実装は、lastメソッドをコールした結果を返します。
      戻り値:
      取得された要 
      スロー:
      NoSuchElementException - このコレクションが空の 合
      導入されたバージョン:
      21
    • removeFirst

      default E removeFirst()
      このコレクションの最初の要 を削除して返します(オプションの操作)。
      定義:
      インタフェースSequencedCollection<E>内のremoveFirst
      実装要件:
      このインタフェースの実装では、firstメソッドをコールして最初の要 を取得し、次にremove(element)をコールして要 を削除してから、要 を返します。
      戻り値:
      削除される要 
      スロー:
      NoSuchElementException - このコレクションが空の 合
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない 合
      導入されたバージョン:
      21
    • removeLast

      default E removeLast()
      このコレクションの最後の要 を削除して返します(オプションの操作)。
      定義:
      インタフェースSequencedCollection<E>内のremoveLast
      実装要件:
      このインタフェースの実装では、lastメソッドをコールして最後の要 を取得し、remove(element)をコールして要 を削除してから、要 を返します。
      戻り値:
      削除される要 
      スロー:
      NoSuchElementException - このコレクションが空の 合
      UnsupportedOperationException - このコレクション実装がこの操作をサポートしていない 合
      導入されたバージョン:
      21
    • reversed

      default SortedSet<E> reversed()
      このコレクションの逆 viewを返します。 返されるビュー内の要 の出現 序は、このコレクション内の要 の出現 序の逆です。 逆の 序付けは、返されるビューのビュー・コレクションに含まれるすべての 序依存操作に影響します。 コレクション実装でこのビューの変更が許可されている 合、ベースとなるコレクションへの変更"ライトスルー"。 実装によっては、基礎となるコレクションに対する変更が、この逆方向ビューに表示される 合と表示されない 合があります。
      定義:
      インタフェースSequencedCollection<E>内のreversed
      定義:
      インタフェースSequencedSet<E>内のreversed
      実装要件:
      このインタフェースの実装では、 序が逆のSortedSetビューが返されます。 ビューのreversed()メソッドは、このSortedSetへの参照を返します。 ビューに対するその他の操作は、このSortedSetのpublicメソッドへのコールを介して実装されます。 ビューのコールとこのSortedSetのコールとの正確な関係は指定されていません。 た し、 序依存操作は、通常、反対の方向で適切なメソッドに委任するかのように動作します。 たとえば、ビューでgetFirstをコールすると、このSortedSetでgetLastがコールされる 合があります。
      戻り値:
      このコレクションの逆 ビュー(SortedSetとして)
      導入されたバージョン:
      21