CDC 1.1.2

java.util
インタフェース SortedSet

すべてのスーパーインタフェース:
Collection, Set
既知の実装クラスの一覧:
TreeSet

public interface SortedSet
extends Set

要素の「自然順序付け」(Comparable を参照) に従って、またはソートセットの作成時に提供されるコンパレータによって、反復子が昇順にトラバースすることを保証するセットです。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。このインタフェースはセットで、SortedMap に類似しています。

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

あるソートセットが Set インタフェースを正しく実装するには、明示的なコンパレータが提供されているかどうかにかかわらず、そのソートセットによって維持される順序付けが「equals との一貫性」のあるものでなければいけないことに注意してください。(「equals との一貫性」の正確な定義については、Comparable インタフェースまたは Comparator インタフェースを参照。)これは Set インタフェースが equals オペレーションに基づいて定義されるためですが、ソートセットはその compareTo メソッドまたは compare メソッドを使用してすべての要素比較を実行するので、このメソッドによって等価とみなされる 2 つの要素は、ソートセットの見地からすれば同じものです。ソートセットの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されています。 つまり、ソートセットの動作は Set インタフェースの一般規約に従っていません。

すべての汎用のソートセット実装クラスが 4 つの標準コンストラクタを提供するようにしてください。1) void (引数なしの) コンストラクタ。これは、要素の自然順序付けに従ってソートされた空のソートセットを作成します。2) Comparator 型の単一引数を持つコンストラクタ。これは、指定されたコンパレータに従ってソートされた空のソートセットを作成します。3) Collection 型の単一引数を持つコンストラクタ。これは、要素の自然順序付けに従ってソートされた、その引数と同じ要素を含む新しいソートセットを作成します。4) SortedSet 型の単一引数を持つコンストラクタ。これは、入力のソートセットと同一の要素と順序付けを持つ新しいソートセットを作成します。インタフェースはコンストラクタを保持できないので、これは強制的なものではありませんが、SDK の実装 (TreeSet クラス) はこれに従っています。

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

導入されたバージョン:
1.2
関連項目:
Set, TreeSet, SortedMap, Collection, Comparable, Comparator, ClassCastException

メソッドの概要
 Comparator comparator()
          ソートセットに関連したコンパレータを返します。
 Object first()
          ソートセット内に現在ある最初 (下端) の要素を返します。
 SortedSet headSet(Object toElement)
          ソートセットの toElement より厳密に小さい要素を持つ部分のビューを返します。
 Object last()
          ソートセット内に現在ある最後 (上端) の要素を返します。
 SortedSet subSet(Object fromElement, Object toElement)
          このソートセットの fromElement (これを含む) 〜 toElement (これを含まない) の要素範囲を持つ部分のビューを返します。
 SortedSet tailSet(Object fromElement)
          このソートセットの fromElement に等しいかこれより大きい要素を持つ部分のビューを返します。
 
インタフェース java.util.Set から継承されたメソッド
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

メソッドの詳細

comparator

Comparator comparator()
ソートセットに関連したコンパレータを返します。ただし、その要素の自然順序付けを使う場合は null を返します。

戻り値:
ソートセットに関連したコンパレータ。ただし、その要素の自然順序付けを使う場合は null

subSet

SortedSet subSet(Object fromElement,
                 Object toElement)
このソートセットの fromElement (これを含む) 〜 toElement (これを含まない) の要素範囲を持つ部分のビューを返します。fromElementtoElement が等しい場合、空のソートセットが返されます。返されるソートセットはこのソートセットに連動しており、返されるソートセットでの変更はこのソートセットに反映され、その逆の場合も同様です。返されるソートセットは、このソートセットがサポートするオプションのセットオペレーションをすべてサポートします。

このメソッドによって返されるソートセットは、ユーザーが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。

注:このメソッドは常に、その下端点は含むが上端点は含まない「片側が開いた範囲」を返します。上下端点を含む「閉じた範囲」が必要であり、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に lowEndpointsuccessor(highEndpoint) の部分範囲を指定してください。たとえば、s が文字列のソートセットであるとします。次の慣用法は、s 内の lowhigh のすべての文字列 (上下端点を含む) を保持するビューを取得します。

 SortedSet sub = s.subSet(low, high+"\0");
 
同様のテクニックを使って、上下端点のどちらも含まない「開いた範囲」を生成できます。次の慣用法は、s 内の low から high までのすべての String (上下端点を含まない) を保持するビューを取得します。
 SortedSet sub = s.subSet(low+"\0", high);
 

パラメータ:
fromElement - subSet の下端点 (これを含む)
toElement - subSet の上端点 (これを含まない)
戻り値:
このソートセット内の指定された範囲のビュー
例外:
ClassCastException - セットのコンパレータを使用して、fromElementtoElement を相互に比較できない場合 (または、セットに自然順序付けを使用するコンパレータがない場合)。実装は、セット内に現在存在している要素と fromElement または toElement とを比較できない場合にこの例外をスローすることができる。ただし、必須ではない
IllegalArgumentException - fromElementtoElement より大きい場合。または、このセット自体が subSet、headSet、または tailSet で、fromElement または toElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException - fromElement または toElementnull で、このソートセットが null 要素を許容しない場合

headSet

SortedSet headSet(Object toElement)
ソートセットの toElement より厳密に小さい要素を持つ部分のビューを返します。返されるソートセットはこのソートセットに基づいており、返されるソートセットでの変更はこのソートセットで反映され、その逆も成り立ちます。返されるソートセットは、オプションのセットオペレーションをすべてサポートします。

このメソッドによって返されるソートセットは、ユーザーが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。

注:このメソッドは常に、その上端点を含まないビューを返します。この端点を含むビューが必要であり、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に successor(highEndpoint) により限界を設けられた headSet を要求してください。たとえば、s が文字列のソートセットであるとします。次の慣用法では、s 内の high 以下のすべての文字列を保持するビューを取得します。

    SortedSet head = s.headSet(high+"\0");

パラメータ:
toElement - headSet の上端点 (これを含まない)
戻り値:
ソートセットの指定の初期範囲のビュー
例外:
ClassCastException - toElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、toElementComparable が実装されていない場合) 実装は、セット内に現在存在している要素と toElement とを比較できない場合にこの例外をスローすることができる。ただし、必須ではない
NullPointerException - toElementnull で、ソートセットが null 要素を許容しない場合
IllegalArgumentException - このセット自体が subSet、headSet、または tailSet で、toElement が指定した範囲の subSet、headSet、または tailSet にない場合

tailSet

SortedSet tailSet(Object fromElement)
このソートセットの fromElement に等しいかこれより大きい要素を持つ部分のビューを返します。返されるソートセットはこのソートセットに連動しており、返されるソートセットでの変更はこのソートセットに反映され、その逆の場合も同様です。返されるソートセットは、オプションのセットオペレーションをすべてサポートします。

このメソッドによって返されるソートセットは、ユーザーが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。

注:このメソッドは常に、その下端点を含むビューを返します。この端点を含まないビューが必要であり、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に successor(lowEndpoint) により限界を設けられた tailSet を要求してください。たとえば、s が文字列のソートセットであるとします。次の慣用法では、s 内の low より厳密に大きい すべての文字列を保持するビューを取得します。

    SortedSet tail = s.tailSet(low+"\0");

パラメータ:
fromElement - tailSet の下端点 (これを含む)
戻り値:
ソートセットの指定の最終範囲のビュー
例外:
ClassCastException - fromElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、fromElementComparable が実装されていない場合)。 実装は、セット内に現在存在している要素と fromElement とを比較できない場合にこの例外をスローすることができる。ただし、必須ではない
NullPointerException - fromElementnull で、ソートセットが null 要素を許容しない場合
IllegalArgumentException - このセット自体が subSet、headSet、または tailSet で、fromElement が指定した範囲の subSet、headSet、または tailSet にない場合

first

Object first()
ソートセット内に現在ある最初 (下端) の要素を返します。

戻り値:
ソートセット内に現在ある最初 (下端) の要素
例外:
NoSuchElementException - ソートセットが空の場合

last

Object last()
ソートセット内に現在ある最後 (上端) の要素を返します。

戻り値:
ソートセット内に現在ある最後 (上端) の要素
例外:
NoSuchElementException - ソートセットが空の場合

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.