|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
反復子の動作を保証するセットです。反復子の動作とは、その要素の「自然順序付け」(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 クラス) はこれに準拠します。
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 から 直後の要素 (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 の上限点 (含まない)public SortedSet headSet(Object toElement)
このメソッドによって返されるソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 限点を含まないビューを返します。この限点を含むビューを必要とし、要素の型が直後の要素の計算を可能にしている場合、単に 直後の値 (highEndpoint) によって限界を設けられた headSet を指定してください。たとえば、s が文字列のソートセットである場合、次のイディオムは、s 内の high 以下のすべての文字列を保持するビューを取得します。
SortedSet head = s.headSet(high+"¥0");
toElement
- headSet の上限点 (含まない)public SortedSet tailSet(Object fromElement)
このメソッドによって返されるソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 限点を含むビューを返します。この限点を含まないビューを必要とし、要素の型が直後の要素の計算を可能にしている場合、単に 直後の値 (lowEndpoint) によって限界を設けられた tailSet を指定してください。たとえば、s が文字列のソートセットである場合、次のイディオムは、s 内の low より大きいすべての文字列を保持するビューを取得します。
SortedSet tail = s.tailSet(low+"¥0");
fromElement
- tailSet の下限点 (含む)public Object first()
public Object last()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |