|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
反復子の動作を保証するセットです。反復子の動作とは、その要素の「自然順序付け」(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 つ持つコンストラクタで、入力のソートセットと同じ要素と同じ順序付けを持つ新しいソートセットを作成します。インタフェースはコンストラクタを保持できないので、これを強制的に推奨することはできませんが、SDK 実装 (TreeSet クラス) はこれに準拠します。
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 (含まない) までの要素範囲を持つ部分のビューを返します (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 |
メソッドの詳細 |
public Comparator comparator()
public SortedSet subSet(Object fromElement, Object 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 要素を許容しない場合public SortedSet headSet(Object 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 にない場合public SortedSet tailSet(Object 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 にない場合public Object first()
NoSuchElementException
- ソートセットが空の場合public Object last()
NoSuchElementException
- ソートセットが空の場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.