- 型パラメータ:
E
- このセットで保持される要素の型
- すべてのスーパー・インタフェース:
Collection<E>
,Iterable<E>
,SequencedCollection<E>
,SequencedSet<E>
,Set<E>
- 既知のすべてのサブインタフェース:
NavigableSet<E>
- 既知のすべての実装クラス:
ConcurrentSkipListSet
,TreeSet
Set
です。 要素の順序付けは、その自然順序付けに従って行われるか、セット構築時に通常提供されるComparator
を使って行われます。 セットのイテレータは、セットを要素の昇順でトラバースします。 その順序付けを利用するために、追加のオペレーションがいくつか提供されています。 (このインタフェースはセットで、SortedMap
に類似しています。)
ソートされたセットに挿入されるすべての要素は、Comparable
インタフェース(または指定されたコンパレータによって受け入れられます)を実装する必要があります。 さらに、このような要素はすべて相互に比較可能である必要があります: e1.compareTo(e2)
(またはcomparator.compare(e1, e2)
)は、ソートされたセット内の要素e1
およびe2
に対してClassCastException
をスローしないでください。 この制約に違反すると、その違反側のメソッドやコンストラクタの呼出しはClassCastException
をスローします。
ソートされたセット(明示的なコンパレータが指定されているかどうか)によって保持される順序付けは、ソートされたセットがSet
インタフェースを正しく実装する場合、「等しいと一貫性」である必要があります。 (equalsとの一貫性の正確な定義については、Comparable
インタフェースまたはComparator
インタフェースを参照してください。) これは、Set
インタフェースがequals
操作に関して定義されていますが、ソートされたセットでは、そのcompareTo
(またはcompare
)メソッドを使用してすべての要素比較が実行されるため、このメソッドで等しいとみなされる2つの要素は、ソートされたセットの観点から等しくなります。 ソートされたセットの動作は、順序付けが等しいと矛盾する場合でもよく定義されます。Set
インタフェースの一般的な契約に従うことはできません。
ソートされたすべての汎用セット実装クラスは、4つの"standard"コンストラクタを提供する必要があります: 1) void (引数なし)コンストラクタ。要素の自然順序に従ってソートされた空のソート・セットを作成します。2) Comparator
型の単一の引数を持つコンストラクタ。これにより、指定されたコンパレータに従ってソートされた空のソート・セットが作成されます。3)型の単一の引数を持つコンストラクタ。Collection
は、要素の自然順序に従ってソートされた、引数と同じ要素を持つ新しいソート・セットを作成します。4) SortedSet
型の単一の引数を持つコンストラクタ。これにより、同じ要素を持つ新しいソート・セットが作成され、ソートされた入力セットと同じ順序付けが行われます。 この推奨を強制する方法はありません。なぜなら、インタフェースにはコンストラクタを含めることができないからです。
ノート:一部のメソッドは、制限された範囲を持つサブセットを返します。 そのような範囲は片側が開いています。つまり、それらの範囲には、下端点は含まれますが上端点は含まれません(該当する場合)。 「閉じた範囲」 (両方のエンドポイントを含む)が必要で、要素タイプで特定の値の後続を計算できる場合は、単にサブレンジをlowEndpoint
からsuccessor(highEndpoint)
にリクエストするだけです。 たとえば、s
がソートされた文字列のセットであるとします。 次のidiomは、s
内のすべての文字列を含むビューをlow
からhigh
まで取得します:
SortedSet<String> sub = s.subSet(low, high+"\0");同様のテクニックを使って、上下端点のどちらも含まない開いた範囲を生成できます。 次のidiomは、
s
内のすべての文字列を含むビューを、low
からhigh
、排他的に取得します: SortedSet<String> sub = s.subSet(low+"\0", high);
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明default void
UnsupportedOperationException
をスローします。default void
UnsupportedOperationException
をスローします。Comparator
<? super E> このセットの要素の順序付けに使用されるコンパレータを返します。このセットが要素の「自然順序付け」を使用する場合はnull
を返します。first()
セット内に現在ある最初(下端)の要素を返します。default E
getFirst()
このコレクションの最初の要素を取得します。default E
getLast()
このコレクションの最後の要素を取得します。このセットの要素がtoElement
より厳密に小さい部分のビューを返します。last()
セット内に現在ある最後(上端)の要素を返します。default E
このコレクションの最初の要素を削除して返します(オプションの操作)。default E
このコレクションの最後の要素を削除して返します(オプションの操作)。reversed()
このコレクションの逆順viewを返します。default Spliterator
<E> このソート・セット内の要素に対するSpliterator
を作成します。このセットの要素の範囲がfromElement
、包含的、排他的、toElement
である部分のビューを返します。要素がfromElement
以上である、このセットの一部のビューを返します。インタフェースjava.util.Collectionで宣言されたメソッド
parallelStream, removeIf, stream, toArray
-
メソッドの詳細
-
comparator
Comparator<? super E> comparator()このセットの要素の順序付けに使用されるコンパレータを返します。このセットが要素の「自然順序付け」を使用する場合はnull
を返します。- 戻り値:
- このセットの要素の順序付けに使用されるコンパレータ。このセットで要素の自然順序付けを使用する場合は
null
-
subSet
このセットの要素の範囲がfromElement
、包含的、排他的、toElement
である部分のビューを返します。 (fromElement
とtoElement
が等しい場合、返されるセットは空です。) 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
fromElement
- 返されるセットの下端点(これを含む)toElement
- 返されるセットの上端点(これを含まない)- 戻り値:
- このセットの
fromElement
(これを含む) -toElement
(これを含まない)の要素範囲を持つ部分のビュー - 例外:
ClassCastException
- このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElement
とtoElement
を相互に比較できない場合。 実装は、セット内に現在存在している要素とfromElement
またはtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-fromElement
またはtoElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
-fromElement
がtoElement
よりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElement
またはtoElement
がその範囲から外れている場合
-
headSet
このセットの要素がtoElement
より厳密に小さい部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
toElement
- 返されるセットの上端点(これを含まない)- 戻り値:
- このセットの要素が厳密に
toElement
より小さい部分のビュー - 例外:
ClassCastException
-toElement
がこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElement
がComparable
を実装していない場合)。 実装は、セット内に現在存在している要素とtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-toElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、toElement
がその範囲から外れている場合
-
tailSet
要素がfromElement
以上である、このセットの一部のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。返されるセットは、その範囲外の要素が挿入されようとすると、
IllegalArgumentException
をスローします。- パラメータ:
fromElement
- 返されるセットの下端点(これを含む)- 戻り値:
- このセットの
fromElement
に等しいかそれよりも大きい要素を持つ部分のビュー - 例外:
ClassCastException
-fromElement
がこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、fromElement
がComparable
を実装していない場合)。 実装は、セット内に現在存在している要素とfromElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
-fromElement
がnullであり、このセットがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、fromElement
がその範囲から外れている場合
-
first
E first()セット内に現在ある最初(下端)の要素を返します。- 戻り値:
- セット内に現在ある最初(下端)の要素
- 例外:
NoSuchElementException
- このセットが空の場合
-
last
E last()セット内に現在ある最後(上端)の要素を返します。- 戻り値:
- セット内に現在ある最後(上端)の要素
- 例外:
NoSuchElementException
- このセットが空の場合
-
spliterator
default Spliterator<E> spliterator()このソート・セット内の要素に対するSpliterator
を作成します。Spliterator
は、Spliterator.DISTINCT
、Spliterator.SORTED
およびSpliterator.ORDERED
を報告します。 実装は、追加の特性値の報告をドキュメント化する必要があります。ソート・セットのコンパレータ(
comparator()
を参照)がnull
の場合、スプリッテレータのコンパレータ(Spliterator.getComparator()
を参照)はnull
である必要があります。 それ以外の場合、スプリッテレータのコンパレータはソート・セットのコンパレータと同じであるか、同じ全体順序付けを適用する必要があります。- 定義:
spliterator
、インタフェースCollection<E>
- 定義:
spliterator
、インタフェースIterable<E>
- 定義:
spliterator
、インタフェースSet<E>
- 実装要件:
- デフォルト実装は、ソート・セットの
Iterator
から遅延バインディング・スプリッテレータを作成します。 スプリッテレータは、セットのイテレータのフェイルファスト・プロパティを継承します。 スプリッテレータのコンパレータはソート・セットのコンパレータと同じです。作成された
Spliterator
は、追加でSpliterator.SIZED
を報告します。 - 実装上のノート:
- 作成された
Spliterator
はさらにSpliterator.SUBSIZED
も報告します。 - 戻り値:
- このソート・セット内の要素に対する
Spliterator
- 導入されたバージョン:
- 1.8
-
addFirst
default void addFirst(E e) UnsupportedOperationException
をスローします。 このセットの比較メソッドによって誘起される出現順序によって要素の位置が決定されるため、明示的な位置決めはサポートされていません。- 定義:
- インタフェース
SequencedCollection<E>
内のaddFirst
- 実装要件:
- このインタフェースの実装では、常に
UnsupportedOperationException
がスローされます。 - パラメータ:
e
- 追加する要素- 例外:
UnsupportedOperationException
- 常時- 導入されたバージョン:
- 21
-
addLast
default void addLast(E e) UnsupportedOperationException
をスローします。 このセットの比較メソッドによって誘起される出現順序によって要素の位置が決定されるため、明示的な位置決めはサポートされていません。- 定義:
- インタフェース
SequencedCollection<E>
内のaddLast
- 実装要件:
- このインタフェースの実装では、常に
UnsupportedOperationException
がスローされます。 - パラメータ:
e
- 追加する要素。- 例外:
UnsupportedOperationException
- 常時- 導入されたバージョン:
- 21
-
getFirst
default E getFirst()このコレクションの最初の要素を取得します。- 定義:
- インタフェース
SequencedCollection<E>
内のgetFirst
- 実装要件:
- このインタフェースの実装は、
first
メソッドをコールした結果を返します。 - 戻り値:
- 取得された要素
- 例外:
NoSuchElementException
- このコレクションが空の場合- 導入されたバージョン:
- 21
-
getLast
default E getLast()このコレクションの最後の要素を取得します。- 定義:
- インタフェース
SequencedCollection<E>
内のgetLast
- 実装要件:
- このインタフェースの実装は、
last
メソッドをコールした結果を返します。 - 戻り値:
- 取得された要素
- 例外:
NoSuchElementException
- このコレクションが空の場合- 導入されたバージョン:
- 21
-
removeFirst
default E removeFirst()このコレクションの最初の要素を削除して返します(オプションの操作)。- 定義:
- インタフェース
SequencedCollection<E>
内のremoveFirst
- 実装要件:
- このインタフェースの実装では、
first
メソッドをコールして最初の要素を取得し、次にremove(element)
をコールして要素を削除してから、要素を返します。 - 戻り値:
- 削除される要素
- 例外:
NoSuchElementException
- このコレクションが空の場合UnsupportedOperationException
- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
removeLast
default E removeLast()このコレクションの最後の要素を削除して返します(オプションの操作)。- 定義:
- インタフェース
SequencedCollection<E>
内のremoveLast
- 実装要件:
- このインタフェースの実装では、
last
メソッドをコールして最後の要素を取得し、remove(element)
をコールして要素を削除してから、要素を返します。 - 戻り値:
- 削除される要素
- 例外:
NoSuchElementException
- このコレクションが空の場合UnsupportedOperationException
- このコレクション実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 21
-
reversed
このコレクションの逆順viewを返します。 返されるビュー内の要素の出現順序は、このコレクション内の要素の出現順序の逆です。 逆の順序付けは、返されるビューのビュー・コレクションに含まれるすべての順序依存操作に影響します。 コレクション実装でこのビューの変更が許可されている場合、ベースとなるコレクションへの変更"ライトスルー"。 実装によっては、基礎となるコレクションに対する変更が、この逆方向ビューに表示される場合と表示されない場合があります。- 定義:
- インタフェース
SequencedCollection<E>
内のreversed
- 定義:
- インタフェース
SequencedSet<E>
内のreversed
- 実装要件:
- このインタフェースの実装では、順序が逆のSortedSetビューが返されます。 ビューの
reversed()
メソッドは、このSortedSetへの参照を返します。 ビューに対するその他の操作は、このSortedSetのpublicメソッドへのコールを介して実装されます。 ビューのコールとこのSortedSetのコールとの正確な関係は指定されていません。 ただし、順序に依存する操作は、通常、反対方向で適切なメソッドに委任されます。 たとえば、ビューでgetFirst
をコールすると、このSortedSetでgetLast
がコールされます。 - 戻り値:
- このコレクションの逆順ビュー(
SortedSet
として) - 導入されたバージョン:
- 21
-