|
CDC 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SortedSet
要素の「自然順序付け」(Comparable を参照) に従って、またはソートセットの作成時に提供されるコンパレータによって、反復子が昇順にトラバースすることを保証するセットです。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。このインタフェースはセットで、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 つの標準コンストラクタを提供するようにしてください。1) void (引数なしの) コンストラクタ。これは、要素の自然順序付けに従ってソートされた空のソートセットを作成します。2) Comparator 型の単一引数を持つコンストラクタ。これは、指定されたコンパレータに従ってソートされた空のソートセットを作成します。3) Collection 型の単一引数を持つコンストラクタ。これは、要素の自然順序付けに従ってソートされた、その引数と同じ要素を含む新しいソートセットを作成します。4) SortedSet 型の単一引数を持つコンストラクタ。これは、入力のソートセットと同一の要素と順序付けを持つ新しいソートセットを作成します。インタフェースはコンストラクタを保持できないので、これは強制的なものではありませんが、SDK の実装 (TreeSet クラス) はこれに従っています。
このインタフェースは、Java Collections Framework のメンバーです。
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()
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 要素を許容しない場合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 にない場合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 にない場合Object first()
NoSuchElementException
- ソートセットが空の場合Object last()
NoSuchElementException
- ソートセットが空の場合
|
CDC 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |