E - このセットで保持される要素の型public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
TreeMapに基づくNavigableSet実装です。 要素の順序付けは、自然順序付けを使って行われるか、セット構築時に提供されるComparatorを使って行われます。そのどちらになるかは、使用するコンストラクタによって決まります。
この実装は、基本オペレーション(add、remove、およびcontains)に保証済みのlog(n)時間コストを提供します。
あるセットがSetインタフェースを正しく実装するには、明示的なコンパレータが提供されているかどうかにかかわらず、そのセットによって維持される順序付けがequalsとの一貫性のあるものでなければいけないことに注意してください。 (equalsとの一貫性の正確な定義については、ComparableまたはComparatorを参照してください。) これはSetインタフェースがequalsオペレーションに基づいて定義されるためですが、TreeSetインスタンスはそのcompareToメソッドまたはcompareメソッドを使用してすべての要素比較を実行するので、このメソッドによって等価と見なされる2つの要素は、セットの見地からすれば同じものです。 セットの動作は、その順序付けがequalsと一貫性がない場合でも明確に定義されていますが、Setインタフェースの一般規約には準拠していません。
この実装はsynchronizedされません。 複数のスレッドが並行してツリー・セットにアクセスし、それらのスレッドの少なくとも1つがセットを変更する場合には、外部で同期をとる必要があります。 これは通常、セットを自然にカプセル化する一部のオブジェクトでsynchronizedすることによって達成されます。 そのようなオブジェクトが存在しない場合は、Collections.synchronizedSortedSetメソッドを使用してセットを「ラップ」することをお薦めします。 セットが誤ってsynchronizedなしでアクセスされるのを防ぐために、作成時に行うことをお薦めします。
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
このクラスのiteratorメソッドによって返されるイテレータは、フェイルファストです。イテレータの作成後に、イテレータ自体のremoveメソッド以外の方法でセットが変更されると、イテレータはConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、イテレータのフェイルファストの動作を保証することはできません。 フェイルファスト・イテレータは、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。 したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。イテレータのフェイルファストの動作はバグを検出するためにのみ使用すべきです。
このクラスは、Java Collections Frameworkのメンバーです。
Collection, Set, HashSet, Comparable, Comparator, TreeMap, 直列化された形式| コンストラクタ | 説明 |
|---|---|
TreeSet() |
要素の自然順序付けに従ってソートされた、新しい空のツリー・セットを作成します。
|
TreeSet(Collection<? extends E> c) |
指定されたコレクション内の要素を持ち、その要素の自然順序付けに従ってソートされた新しいツリー・セットを作成します。
|
TreeSet(Comparator<? super E> comparator) |
指定されたコンパレータに従ってソートされた、新しい空のツリー・セットを作成します。
|
TreeSet(SortedSet<E> s) |
指定されたソート・セットと同じ要素を持ち、同じ順序付けを使用する新しいツリー・セットを作成します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
boolean |
add(E e) |
指定された要素がセットの要素として存在しない場合に、その要素をセットに追加します。
|
boolean |
addAll(Collection<? extends E> c) |
指定されたコレクション内のすべての要素をセットに追加します。
|
E |
ceiling(E e) |
このセット内で、指定された要素と等しいかそれよりも大きい要素の中で最小のものを返します。そのような要素が存在しない場合は
nullを返します。 |
void |
clear() |
すべての要素をセットから削除します。
|
Object |
clone() |
TreeSetのインスタンスのシャロー・コピーを返します。 |
Comparator<? super E> |
comparator() |
このセット内の要素を順序付けするために使うコンパレータを返します。ただし、このセットがその要素の自然順序付けを使う場合はnullを返します。
|
boolean |
contains(Object o) |
指定された要素がこのセットに含まれている場合に
trueを返します。 |
Iterator<E> |
descendingIterator() |
このセットの要素のイテレータを降順で返します。
|
NavigableSet<E> |
descendingSet() |
このセットに含まれる要素の逆順のビューを返します。
|
E |
first() |
セット内に現在ある最初(下端)の要素を返します。
|
E |
floor(E e) |
このセット内で、指定された要素と等しいかそれよりも小さい要素の中で最大のものを返します。そのような要素が存在しない場合は
nullを返します。 |
SortedSet<E> |
headSet(E toElement) |
このセットのtoElementよりも確実に小さい要素を持つ部分のビューを返します。
|
NavigableSet<E> |
headSet(E toElement, boolean inclusive) |
このセットの
toElementよりも小さい要素(inclusiveがtrueの場合はそれよりも小さいかそれと等しい要素)を含む部分のビューを返します。 |
E |
higher(E e) |
このセット内で、指定された要素よりも確実に大きい要素の中で最小のものを返します。そのような要素が存在しない場合は
nullを返します。 |
boolean |
isEmpty() |
このセットに要素が1つも含まれていない場合に
trueを返します。 |
Iterator<E> |
iterator() |
このセットの要素のイテレータを昇順で返します。
|
E |
last() |
セット内に現在ある最後(上端)の要素を返します。
|
E |
lower(E e) |
このセット内で、指定された要素よりも確実に小さい要素の中で最大のものを返します。そのような要素が存在しない場合は
nullを返します。 |
E |
pollFirst() |
最初(下端)の要素を取得して削除します。このセットが空の場合は
nullを返します。 |
E |
pollLast() |
最後(上端)の要素を取得して削除します。このセットが空の場合は
nullを返します。 |
boolean |
remove(Object o) |
指定された要素がこのセットに存在する場合に、要素をセットから削除します。
|
int |
size() |
セット内の要素数(そのカーディナリティ)を返します。
|
Spliterator<E> |
spliterator() |
このセット内の要素に対する遅延バインディングおよびフェイルファスト
Spliteratorを作成します。 |
NavigableSet<E> |
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) |
このセットの
fromElement - toElementの要素範囲を持つ部分のビューを返します。 |
SortedSet<E> |
subSet(E fromElement, E toElement) |
このセットのfromElement (これを含む) - toElement (これを含まない)の要素範囲を持つ部分のビューを返します。
|
SortedSet<E> |
tailSet(E fromElement) |
このセットのfromElementに等しいかそれよりも大きい要素を持つ部分のビューを返します。
|
NavigableSet<E> |
tailSet(E fromElement, boolean inclusive) |
このセットの
fromElementよりも大きい要素(inclusiveがtrueの場合はそれよりも大きいかそれと等しい要素)を含む部分のビューを返します。 |
equals, hashCode, removeAllcontainsAll, retainAll, toArray, toArray, toStringcontainsAll, equals, hashCode, removeAll, retainAll, toArray, toArrayparallelStream, removeIf, streampublic TreeSet()
Comparableインタフェースを実装する必要があります。 さらに、各要素は相互に比較可能である必要があります。つまり、e1.compareTo(e2)は、セット内のe1とe2のどの要素に対してもClassCastExceptionをスローすべきではありません。 たとえば、要素が整数のセットに文字列要素を追加しようとするなど、ユーザーがこの制約に違反する要素をセットに追加しようとすると、addの呼出しがClassCastExceptionをスローします。 public TreeSet(Comparator<? super E> comparator)
e1とe2に対して、comparator.compare(e1, e2)がClassCastExceptionをスローしてはいけません。 ユーザーがこの制約に違反する要素をセットに追加しようとすると、addの呼出しがClassCastExceptionをスローします。 comparator - このセットの順序付けを行うために使用されるコンパレータ。 nullの場合、要素の自然順序付けが使用される。 public TreeSet(Collection<? extends E> c)
Comparableインタフェースを実装する必要があります。 さらに、各要素は相互に比較可能である必要があります。つまり、e1.compareTo(e2)は、セット内のe1とe2のどの要素に対してもClassCastExceptionをスローすべきではありません。 c - 新しいセットを構成する要素からなるコレクションClassCastException - c内の要素がComparableでないか、または相互に比較可能でない場合NullPointerException - 指定されたコレクションがnullである場合public TreeSet(SortedSet<E> s)
s - 新しいセットを構成する要素からなるソート・セットNullPointerException - 指定されたソート・セットがnullの場合public Iterator<E> iterator()
iterator、インタフェースIterable<E>iterator、インタフェースCollection<E>iterator、インタフェースNavigableSet<E>iterator、インタフェースSet<E>iterator、クラスAbstractCollection<E>public Iterator<E> descendingIterator()
descendingIterator、インタフェースNavigableSet<E>public NavigableSet<E> descendingSet()
NavigableSetremoveオペレーションを除く)。
返されるセットの順序付けは、Collections.reverseOrder(comparator())と同等になります。 式s.descendingSet().descendingSet()から返されるsのビューは基本的にsと同等になります。
descendingSet、インタフェースNavigableSet<E>public int size()
size、インタフェースCollection<E>size、インタフェースSet<E>size、クラスAbstractCollection<E>public boolean isEmpty()
trueを返します。isEmpty、インタフェースCollection<E>isEmpty、インタフェースSet<E>isEmpty、クラスAbstractCollection<E>truepublic boolean contains(Object o)
trueを返します。 つまり、このセットに、(o==null ? e==null : o.equals(e))となる要素eが含まれている場合にのみtrueを返します。 contains、インタフェースCollection<E>contains、インタフェースSet<E>contains、クラスAbstractCollection<E>o - このセットに含まれているかどうかがチェックされるオブジェクトtrueClassCastException - 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public boolean add(E e)
e2がない場合は、指定された要素eをこのセットに追加します。 このセット内にすでにその要素が含まれている場合、この呼出しはセットを変更せずにfalseを返します。 add、インタフェースCollection<E>add、インタフェースSet<E>add、クラスAbstractCollection<E>e - このセットに追加される要素trueClassCastException - 指定されたオブジェクトがこのセット内に現在ある要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public boolean remove(Object o)
eが含まれている場合は、そのような要素を削除します。 その要素がこのセットに含まれていた場合、つまり、呼出しの結果としてこのセットが変更された場合はtrueを返します。 呼出しが復帰したあとは、このセットはその要素を持っていません。 remove、インタフェースCollection<E>remove、インタフェースSet<E>remove、クラスAbstractCollection<E>o - このセットから削除されるオブジェクト(そのオブジェクトが存在する場合)trueClassCastException - 指定されたオブジェクトがこのセット内に現在ある要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public void clear()
clear、インタフェースCollection<E>clear、インタフェースSet<E>clear、クラスAbstractCollection<E>public boolean addAll(Collection<? extends E> c)
addAll、インタフェースCollection<E>addAll、インタフェースSet<E>addAll、クラスAbstractCollection<E>c - このセットに追加される要素を含むコレクションtrueClassCastException -指定された要素がセット内に現在ある要素と比較可能でない場合NullPointerException - 指定されたコレクションがnullである場合、またはある任意の要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合AbstractCollection.add(Object)public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
NavigableSetfromElement - toElementの要素範囲を持つ部分のビューを返します。 fromElementとtoElementが等しい場合、返されるセットは、fromInclusiveとtoInclusiveの両方がtrueでないかぎり、空になります。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
subSet、インタフェースNavigableSet<E>fromElement - 返されるセットの下端点fromInclusive - 返されるビューに下端点が含まれる場合はtruetoElement - 返されるセットの上端点toInclusive - 返されるビューに上端点が含まれる場合はtruefromElement (これを含む) - toElement (これを含まない)の要素範囲を持つ部分のビューClassCastException - このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElementとtoElementを相互に比較できない場合。 実装は、セット内に現在存在している要素とfromElementまたはtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - fromElementまたはtoElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - fromElementがtoElementよりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElementまたはtoElementがその範囲から外れている場合public NavigableSet<E> headSet(E toElement, boolean inclusive)
NavigableSettoElementよりも小さい要素(inclusiveがtrueの場合はそれよりも小さいかそれと等しい要素)を含む部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
headSet、インタフェースNavigableSet<E>toElement - 返されるセットの上端点inclusive - 返されるビューに上端点が含まれる場合はtruetoElementよりも小さい要素(inclusiveがtrueの場合はそれよりも小さいかそれと等しい要素)を含む部分のビューClassCastException - toElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElementがComparableを実装していない場合)。 実装は、セット内に現在存在している要素とtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - toElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - このセット自体が制限された範囲を持っており、toElementがその範囲から外れている場合public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
NavigableSetfromElementよりも大きい要素(inclusiveがtrueの場合はそれよりも大きいかそれと等しい要素)を含む部分のビューを返します。 返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。 返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
tailSet、インタフェースNavigableSet<E>fromElement - 返されるセットの下端点inclusive - 返されるビューに下端点が含まれる場合はtruefromElementに等しいかそれよりも大きい要素を持つ部分のビューClassCastException - fromElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、fromElementがComparableを実装していない場合)。 実装は、セット内に現在存在している要素とfromElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - fromElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - このセット自体が制限された範囲を持っており、fromElementがその範囲から外れている場合public SortedSet<E> subSet(E fromElement, E toElement)
NavigableSet返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
subSet(fromElement, true, toElement, false)と同等です。
subSet、インタフェースNavigableSet<E>subSet、インタフェースSortedSet<E>fromElement - 返されるセットの下端点(これを含む)toElement - 返されるセットの上端点(これを含まない)ClassCastException - このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElementとtoElementを相互に比較できない場合。 実装は、セット内に現在存在している要素とfromElementまたはtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - fromElementまたはtoElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - fromElementがtoElementよりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElementまたはtoElementがその範囲から外れている場合public SortedSet<E> headSet(E toElement)
NavigableSet返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
headSet(toElement, false)と同等です。
headSet、インタフェースNavigableSet<E>headSet、インタフェースSortedSet<E>toElement - 返されるセットの上端点(これを含まない)ClassCastException - toElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElementがComparableを実装していない場合)。 実装は、セット内に現在存在している要素とtoElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - toElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - このセット自体が制限された範囲を持っており、toElementがその範囲から外れている場合public SortedSet<E> tailSet(E fromElement)
NavigableSet返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentExceptionをスローします。
tailSet(fromElement, true)と同等です。
tailSet、インタフェースNavigableSet<E>tailSet、インタフェースSortedSet<E>fromElement - 返されるセットの下端点(これを含む)ClassCastException - fromElementがこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、fromElementがComparableを実装していない場合)。 実装は、セット内に現在存在している要素とfromElementとを比較できない場合にこの例外をスローできる。ただし、必須ではない。 NullPointerException - fromElementがnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException - このセット自体が制限された範囲を持っており、fromElementがその範囲から外れている場合public Comparator<? super E> comparator()
SortedSetcomparator、インタフェースSortedSet<E>public E first()
SortedSetfirst、インタフェースSortedSet<E>NoSuchElementException - このセットが空の場合public E last()
SortedSetlast、インタフェースSortedSet<E>NoSuchElementException - このセットが空の場合public E lower(E e)
NavigableSetnullを返します。lower、インタフェースNavigableSet<E>e - 照合する値eよりも小さい要素の中で最大のもの。そのような要素が存在しない場合はnullClassCastException - 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E floor(E e)
NavigableSetnullを返します。floor、インタフェースNavigableSet<E>e - 照合する値eと等しいか、それよりも小さい要素の中で最大のもの。そのような要素が存在しない場合はnullClassCastException - 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E ceiling(E e)
NavigableSetnullを返します。ceiling、インタフェースNavigableSet<E>e - 照合する値eと等しいか、それよりも大きい要素の中で最小のもの。そのような要素が存在しない場合はnullClassCastException - 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E higher(E e)
NavigableSetnullを返します。higher、インタフェースNavigableSet<E>e - 照合する値eよりも大きい要素の中で最小のもの。そのような要素が存在しない場合はnullClassCastException - 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException - 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E pollFirst()
NavigableSetnullを返します。pollFirst、インタフェースNavigableSet<E>nullpublic E pollLast()
NavigableSetnullを返します。pollLast、インタフェースNavigableSet<E>nullpublic Object clone()
TreeSetのインスタンスのシャロー・コピーを返します。 要素自体は複製されません。 public Spliterator<E> spliterator()
Spliteratorを作成します。
Spliteratorは、Spliterator.SIZED、Spliterator.DISTINCT、Spliterator.SORTEDおよびSpliterator.ORDEREDを報告します。 オーバーライドする実装は、追加の特性値の報告をドキュメント化する必要があります。
ツリー・セットのコンパレータ(comparator()を参照)がnullである場合、スプリッテレータのコンパレータ(Spliterator.getComparator()を参照)はnullです。 それ以外の場合、スプリッテレータのコンパレータはツリー・セットのコンパレータと同じであるか、同じ全体順序付けを義務付けます。
spliterator、インタフェースIterable<E>spliterator、インタフェースCollection<E>spliterator、インタフェースSet<E>spliterator、インタフェースSortedSet<E>Spliterator バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。