E
- このセットで保持される要素の型public interface SortedSet<E> extends Set<E>
Set
です。要素の順序付けは、その自然順序付けに従って行われるか、セット構築時に通常提供されるComparator
を使って行われます。セットのイテレータは、セットを要素の昇順でトラバースします。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。(このインタフェースはセットで、SortedMap
に類似しています。)
ソート・セットに挿入されるすべての要素は、Comparableインタフェースを実装するか、指定されたコンパレータによって受け入れられる必要があります。さらに、各要素は相互に比較可能である必要があります。つまり、ソート・セット内の任意の要素e1とe2に対して、e1.compareTo(e2) (またはcomparator.compare(e1, e2))がClassCastExceptionをスローしてはいけません。この制約に違反すると、その違反側のメソッドやコンストラクタの呼出しはClassCastExceptionをスローします。
あるソート・セットがSetインタフェースを正しく実装するには、明示的なコンパレータが提供されているかどうかにかかわらず、そのソート・セットによって維持される順序付けがequalsとの一貫性のあるものでなければいけないことに注意してください。(equalsとの一貫性の正確な定義については、ComparableインタフェースまたはComparatorインタフェースを参照してください。)これはSetインタフェースがequalsオペレーションに基づいて定義されるためですが、ソート・セットはそのcompareToメソッドまたはcompareメソッドを使用してすべての要素比較を実行するので、このメソッドによって等価と見なされる2つの要素は、ソート・セットの見地からすれば同じものです。ソート・セットの動作は、その順序付けがequalsと一貫性がない場合でも明確に定義されていますが、Setインタフェースの一般規約には準拠していません。
すべての汎用のソート・セット実装クラスが4つの標準コンストラクタを提供するようにしてください。1) void (引数なしの)コンストラクタ。これは、要素の自然順序付けに従ってソートされた空のソート・セットを作成します。2) Comparator型の単一引数を持つコンストラクタ。これは、指定されたコンパレータに従ってソートされた空のソート・セットを作成します。3) Collection型の単一引数を持つコンストラクタ。これは、要素の自然順序付けに従ってソートされた、その引数と同じ要素を含む新しいソート・セットを作成します。4) SortedSet型の単一引数を持つコンストラクタ。これは、入力のソート・セットと同一の要素と順序付けを持つ新しいソート・セットを作成します。この推奨を強制する方法はありません。なぜなら、インタフェースにはコンストラクタを含めることができないからです。
注:一部のメソッドは、制限された範囲を持つサブセットを返します。そのような範囲は片側が開いています。つまり、それらの範囲には、下端点は含まれますが上端点は含まれません(該当する場合)。上下端点を含む閉じた範囲が必要で、要素の型により直後の要素の計算が可能になる場合、単にlowEndpoint - successor(highEndpoint)の部分範囲を指定してください。たとえば、sが文字列のソート・セットであるとします。次の慣用法は、low - highの範囲(上下端点を含む)にあるs内のすべての文字列を保持するビューを取得します。
SortedSet<String> sub = s.subSet(low, high+"\0");同様のテクニックを使って、上下端点のどちらも含まない開いた範囲を生成できます。次の慣用法は、low - highの範囲(上下端点を含まない)にあるs内のすべての文字列を保持するビューを取得します。
SortedSet<String> sub = s.subSet(low+"\0", high);
このインタフェースは、Java Collections Frameworkのメンバーです。
Set
, TreeSet
, SortedMap
, Collection
, Comparable
, Comparator
, ClassCastException
修飾子と型 | メソッドと説明 |
---|---|
Comparator<? super E> |
comparator()
このセット内の要素を順序付けするために使うコンパレータを返します。ただし、このセットがその要素の自然順序付けを使う場合はnullを返します。
|
E |
first()
セット内に現在ある最初(下端)の要素を返します。
|
SortedSet<E> |
headSet(E toElement)
このセットのtoElementよりも確実に小さい要素を持つ部分のビューを返します。
|
E |
last()
セット内に現在ある最後(上端)の要素を返します。
|
default Spliterator<E> |
spliterator()
このソート・セット内の要素に対する
Spliterator を作成します。 |
SortedSet<E> |
subSet(E fromElement, E toElement)
このセットのfromElement (これを含む) - toElement (これを含まない)の要素範囲を持つ部分のビューを返します。
|
SortedSet<E> |
tailSet(E fromElement)
このセットのfromElementに等しいかそれよりも大きい要素を持つ部分のビューを返します。
|
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
parallelStream, removeIf, stream
Comparator<? super E> comparator()
SortedSet<E> subSet(E fromElement, E toElement)
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
fromElement
- 返されるセットの下端点(これを含む)toElement
- 返されるセットの上端点(これを含まない)ClassCastException
- このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElementとtoElementを相互に比較できない場合。実装は、セット内に現在存在している要素とfromElementまたはtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- fromElementまたはtoElementがnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- fromElementがtoElementよりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElementまたはtoElementがその範囲から外れている場合SortedSet<E> headSet(E toElement)
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
toElement
- 返されるセットの上端点(これを含まない)ClassCastException
- toElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElementがComparable
を実装していない場合)。実装は、セット内に現在存在している要素とtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- toElementがnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、toElementがその範囲から外れている場合SortedSet<E> tailSet(E fromElement)
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
fromElement
- 返されるセットの下端点(これを含む)ClassCastException
- fromElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、fromElementがComparable
を実装していない場合)。実装は、セット内に現在存在している要素とfromElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- fromElementがnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、fromElementがその範囲から外れている場合E first()
NoSuchElementException
- このセットが空の場合E last()
NoSuchElementException
- このセットが空の場合default Spliterator<E> spliterator()
Spliterator
を作成します。
Spliterator
は、Spliterator.DISTINCT
、Spliterator.SORTED
およびSpliterator.ORDERED
を報告します。実装は、追加の特性値の報告をドキュメント化する必要があります。
SortedSetのコンパレータ(comparator()
を参照)がnull
の場合、スプリッテレータのコンパレータ(Spliterator.getComparator()
を参照)はnull
である必要があります。それ以外の場合、スプリッテレータのコンパレータはSortedSetのコンパレータと同じであるか、同じ全体順序付けを適用する必要があります。
spliterator
、インタフェース: Collection<E>
spliterator
、インタフェース: Iterable<E>
spliterator
、インタフェース: Set<E>
Iterator
から遅延バインディング・スプリッテレータを作成します。スプリッテレータは、セットのイテレータのフェイルファスト・プロパティを継承します。スプリッテレータのコンパレータはSortedSetのコンパレータと同じです。
作成されたSpliterator
は、追加でSpliterator.SIZED
を報告します。
Spliterator
はさらにSpliterator.SUBSIZED
も報告します。Spliterator
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.