JavaTM Platform
Standard Ed. 6

java.util
インタフェース SortedSet<E>

型パラメータ:
E - このセットが保持する要素の型
すべてのスーパーインタフェース:
Collection<E>, Iterable<E>, Set<E>
既知のサブインタフェースの一覧:
NavigableSet<E>
既知の実装クラスの一覧:
ConcurrentSkipListSet, TreeSet

public interface SortedSet<E>
extends Set<E>

要素に対して「全体順序付け」を追加提供する Set です。要素の順序付けは、自然順序付け を使って行われるか、ソートセット構築時に通常提供される Comparator を使って行われます。セットの反復子は、セットを要素の昇順でトラバースします。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。このインタフェースはセットで、SortedMap に類似しています。  

ソートセットに挿入されるすべての要素は、Comparable インタフェースを実装するか、指定されたコンパレータによって受け付けられる必要があります。さらに、各要素は「相互に比較可能」である必要があります。つまり、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 型の単一引数を持つコンストラクタ。これは、入力のソートセットと同一の要素と順序付けを持つ新しいソートセットを作成します。この推奨を強制する方法はありません。なぜなら、インタフェースにはコンストラクタを含めることができないからです。  

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

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

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

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

メソッドの概要
 Comparator<? super E> comparator()
          このセット内の要素を順序付けするのに使うコンパレータを返します。
 E first()
          セット内に現在ある最初 (下端) の要素を返します。
 SortedSet<E> headSet(E toElement)
          セットの toElement より小さい要素を持つ部分のビューを返します。
 E last()
          セット内に現在ある最後 (上端) の要素を返します。
 SortedSet<E> subSet(E fromElement, E toElement)
          セットの fromElement (これを含む) 〜 toElement (これを含まない) の要素範囲を持つ部分のビューを返します。
 SortedSet<E> tailSet(E fromElement)
          セットの fromElement に等しいかこれより大きい要素を持つ部分のビューを返します。
 
インタフェース 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 - セットが空の場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。