- 型パラメータ:
E
- このセットで保持される要素の型
- すべてのスーパー・インタフェース:
Collection<E>
,Iterable<E>
,Set<E>
- 既知のすべてのサブインタフェース:
NavigableSet<E>
- 既知のすべての実装クラス:
ConcurrentSkipListSet
,TreeSet
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のメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明Comparator<? super E>
このセット内の要素を順序付けするために使うコンパレータを返します。ただし、このセットがその要素の自然順序付けを使う場合はnull
を返します。first()
セット内に現在ある最初(下端)の要素を返します。このセットのtoElement
よりも確実に小さい要素を持つ部分のビューを返します。last()
セット内に現在ある最後(上端)の要素を返します。default Spliterator<E>
このソート・セット内の要素に対するSpliterator
を作成します。このセットのfromElement
(これを含む) -toElement
(これを含まない)の要素範囲を持つ部分のビューを返します。このセットのfromElement
に等しいかそれよりも大きい要素を持つ部分のビューを返します。インタフェース java.util.Collectionで宣言されたメソッド
parallelStream, removeIf, stream, toArray
-
メソッドの詳細
-
comparator
Comparator<? super E> comparator()このセット内の要素を順序付けするために使うコンパレータを返します。ただし、このセットがその要素の自然順序付けを使う場合はnull
を返します。- 戻り値:
- このセット内の要素を順序付けするのに使うコンパレータ。このセットがその要素の自然順序付けを使う場合は
null
-
subSet
このセットのfromElement
(これを含む) -toElement
(これを含まない)の要素範囲を持つ部分のビューを返します。fromElement
とtoElement
が等しい場合は、空のセットが返されます。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
fromElement
- 返されるセットの下端点(これを含む)toElement
- 返されるセットの上端点(これを含まない)- 戻り値:
- このセットの
fromElement
(これを含む) -toElement
(これを含まない)の要素範囲を持つ部分のビュー - 例外:
ClassCastException
- このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElement
とtoElement
を相互に比較できない場合。 実装は、セット内に現在存在している要素とfromElement
またはtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-fromElement
またはtoElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
-fromElement
がtoElement
よりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElement
またはtoElement
がその範囲から外れている場合
-
headSet
このセットのtoElement
よりも確実に小さい要素を持つ部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
toElement
- 返されるセットの上端点(これを含まない)- 戻り値:
- このセットの
toElement
よりも確実に小さい要素を持つ部分のビュー - 例外:
ClassCastException
-toElement
がこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElement
がComparable
を実装していない場合)。 実装は、セット内に現在存在している要素とtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-toElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、toElement
がその範囲から外れている場合
-
tailSet
このセットのfromElement
に等しいかそれよりも大きい要素を持つ部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
fromElement
- 返されるセットの下端点(これを含む)- 戻り値:
- このセットの
fromElement
に等しいかそれよりも大きい要素を持つ部分のビュー - 例外:
ClassCastException
-fromElement
がこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、fromElement
がComparable
を実装していない場合)。 実装は、セット内に現在存在している要素とfromElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-fromElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、fromElement
がその範囲から外れている場合
-
first
E first()セット内に現在ある最初(下端)の要素を返します。- 戻り値:
- セット内に現在ある最初(下端)の要素
- 例外:
NoSuchElementException
- このセットが空の場合
-
last
E last()セット内に現在ある最後(上端)の要素を返します。- 戻り値:
- セット内に現在ある最後(上端)の要素
- 例外:
NoSuchElementException
- このセットが空の場合
-
spliterator
default Spliterator<E> spliterator()このソート・セット内の要素に対するSpliterator
を作成します。Spliterator
は、Spliterator.DISTINCT
、Spliterator.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
-