|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SortedSet<E>
反復子の動作を保証するセットです。反復子の動作とは、その要素の「自然順序付け」(Comparable を参照) に従ってソートされた昇順、またはソートセット作成時に提供される Comparator によってソートされた昇順の要素セットを全探索するものです。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。このインタフェースはセットで、SortedMap に類似しています。
ソートセットに挿入されるすべての要素は、Comparable インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。さらに、そのようなすべての要素は「相互に比較可能」である必要があります。つまり、e1.compareTo(e2) (または comparator.compare(e1, e2)) は、ソートセット内のどのような要素 e1 と e2 に対しても ClassCastException をスローしてはいけません。この制約に違反すると、その違反側のメソッドやコンストラクタの呼び出しは ClassCastException をスローします。
ソートセットが正しく Set インタフェースを実装する必要がある場合は、明示的なコンパレータの提供の有無にかかわらず、ソートセットで管理される順序付けは「equals と一貫性」が必要です (「equals との一貫性」の正確な定義については、Comparable インタフェースまたは Comparator インタフェースを参照)。これは Set インタフェースが equals オペレーションに基づいて定義されるためですが、ソートセットはその compareTo メソッドまたは compare メソッドを使用してすべての要素比較を実行するので、このメソッドによって等価と見なされる 2 つの要素は、ソートセットの見地からすれば同じものです。ソートセットの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されています。つまり、ソートセットの動作は Set インタフェースの一般規約に従っていません。
すべての汎用のソートセット実装クラスが 4 つの標準コンストラクタを提供するようにしてください。その 4 つとは、1) その要素の「自然順序付け」に従ってソートされた空のソートセットを作成する void (引数なし) コンストラクタ、2) 指定されたコンパレータに従ってソートされた空のソートセットを作成する、Comparator 型の引数を 1 つ持つコンストラクタ、3) 要素の自然順序付けに従ってソートされた、その引数と同じ要素を持つ新しいソートセットを作成する、Collection 型の引数を 1 つ持つコンストラクタ、4) 入力のソートセットと同じ要素と同じ順序付けを持つ新しいソートセットを作成する、SortedSet 型の引数を 1 つ持つコンストラクタです。インタフェースはコンストラクタを保持できないので、これを強制的に推奨することはできませんが、JDK 実装 (TreeSet クラス) はこれに準拠します。
このインタフェースは、Java Collections Framework のメンバです。
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 (含まない) までの要素範囲を持つ部分のビューを返します (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<? super E> comparator()
SortedSet<E> subSet(E fromElement, E toElement)
このメソッドによって返されるソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その下端点は含むが上端点は含まない「片側が開いた範囲」を返します。上下端点を含む「閉じた範囲」が必要で、要素の型により直後の要素の計算が可能になる場合、単に lowEndpoint 〜 successor(highEndpoint) の部分範囲を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の low 〜 high のすべての文字列 (上下端点を含む) を保持するビューを取得します。
SortedSet sub = s.subSet(low, high+"\0");同様のテクニックを使用して、上下端点のどちらも含まない「開いた範囲」を生成できます。次の慣用法は、s 内の low から high までのすべての String (上下端点を含まない) を保持するビューを取得します。
SortedSet sub = s.subSet(low+"\0", high);
fromElement
- subSet の下端点 (これを含む)toElement
- subSet の上端点 (これを含まない)
ClassCastException
- このセットのコンパレータを使用して、fromElement および toElement を相互に比較できない場合 (または、セットに自然順序付けを使用するコンパレータがない場合)。fromElement または toElement をセットの現在の要素と比較できない場合、必須ではないがこの例外がスローされる
IllegalArgumentException
- fromElement が toElement より大きい場合。または、このセット自体が subSet、headSet、または tailSet で、fromElement または toElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException
- fromElement または toElement が null で、ソートセットが null 要素を許容しない場合SortedSet<E> headSet(E toElement)
このメソッドによって返されるソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 端点を含まないビューを返します。この端点を含むビューを必要とし、要素の型により直後の要素の計算が可能になる場合、単に successor(highEndpoint) によって限界を設けられた headSet を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の high より小さいか等しいすべての文字列を保持するビューを取得します。
SortedSet head = s.headSet(high+"\0");
toElement
- headSet の上端点 (これを含まない)
ClassCastException
- toElement がこのセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、toElement に Comparable が実装されていない場合)。toElement がセットの現在のキーと比較できない場合、必須ではないが、この例外がスローされる場合がある
NullPointerException
- toElement が null で、ソートセットが null 要素を許容しない場合
IllegalArgumentException
- このセット自体が subSet、headSet、または tailSet で、toElement が指定した範囲の subSet、headSet、または tailSet にない場合SortedSet<E> tailSet(E fromElement)
このメソッドによって返されるソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 端点を含むビューを返します。この端点を含まないビューを必要とし、要素の型により直後の要素の計算が可能になる場合、単に successor(lowEndpoint) によって限界を設けられた tailSet を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の low より大きいすべての文字列を保持するビューを取得します。
SortedSet tail = s.tailSet(low+"\0");
fromElement
- tailSet の下端点 (これを含む)
ClassCastException
- fromElement がこのセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、fromElement に Comparable が実装されていない場合)。fromElement がセットの現在の要素と比較できない場合、必須ではないが、この例外がスローされる場合がある
NullPointerException
- fromElement が null で、ソートセットが null 要素を許容しない場合
IllegalArgumentException
- このセット自体が subSet、headSet、または tailSet で、fromElement が指定した範囲の subSet、headSet、または tailSet にない場合E first()
NoSuchElementException
- ソートセットが空の場合E last()
NoSuchElementException
- ソートセットが空の場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。