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, removeAll
containsAll, retainAll, toArray, toArray, toString
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
parallelStream, removeIf, stream
public 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()
NavigableSet
remove
オペレーションを除く)。
返されるセットの順序付けは、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>
true
public boolean contains(Object o)
true
を返します。つまり、このセットに、(o==null ? e==null : o.equals(e))となる要素e
が含まれている場合にのみtrue
を返します。contains
、インタフェース: Collection<E>
contains
、インタフェース: Set<E>
contains
、クラス: AbstractCollection<E>
o
- このセットに含まれているかどうかがチェックされるオブジェクトtrue
ClassCastException
- 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public boolean add(E e)
e2
がない場合は、指定された要素e
をこのセットに追加します。このセット内にすでにその要素が含まれている場合、この呼出しはセットを変更せずにfalse
を返します。add
、インタフェース: Collection<E>
add
、インタフェース: Set<E>
add
、クラス: AbstractCollection<E>
e
- このセットに追加される要素true
ClassCastException
- 指定されたオブジェクトがこのセット内に現在ある要素と比較できない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public boolean remove(Object o)
e
が含まれている場合は、そのような要素を削除します。その要素がこのセットに含まれていた場合、つまり、呼出しの結果としてこのセットが変更された場合はtrue
を返します。呼出しが復帰したあとは、このセットはその要素を持っていません。remove
、インタフェース: Collection<E>
remove
、インタフェース: Set<E>
remove
、クラス: AbstractCollection<E>
o
- このセットから削除されるオブジェクト(そのオブジェクトが存在する場合)true
ClassCastException
- 指定されたオブジェクトがこのセット内に現在ある要素と比較できない場合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
- このセットに追加される要素を含むコレクションtrue
ClassCastException
-指定された要素がセット内に現在ある要素と比較可能でない場合NullPointerException
- 指定されたコレクションがnullである場合、またはある任意の要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合AbstractCollection.add(Object)
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
NavigableSet
fromElement
- toElement
の要素範囲を持つ部分のビューを返します。fromElement
とtoElement
が等しい場合、返されるセットは、fromInclusive
とtoInclusive
の両方がtrueでないかぎり、空になります。返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentException
をスローします。
subSet
、インタフェース: NavigableSet<E>
fromElement
- 返されるセットの下端点fromInclusive
- 返されるビューに下端点が含まれる場合はtrue
toElement
- 返されるセットの上端点toInclusive
- 返されるビューに上端点が含まれる場合はtrue
fromElement
(これを含む) - toElement
(これを含まない)の要素範囲を持つ部分のビューClassCastException
- このセットのコンパレータを使用して(このセットがコンパレータを持たない場合は自然順序付けを使用して)、fromElement
とtoElement
を相互に比較できない場合。実装は、セット内に現在存在している要素とfromElement
またはtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- fromElement
またはtoElement
がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException
- fromElement
がtoElement
よりも大きい場合、またはこのセット自体が制限された範囲を持っており、fromElement
またはtoElement
がその範囲から外れている場合public NavigableSet<E> headSet(E toElement, boolean inclusive)
NavigableSet
toElement
よりも小さい要素(inclusive
がtrueの場合はそれよりも小さいかそれと等しい要素)を含む部分のビューを返します。返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentException
をスローします。
headSet
、インタフェース: NavigableSet<E>
toElement
- 返されるセットの上端点inclusive
- 返されるビューに上端点が含まれる場合はtrue
toElement
よりも小さい要素(inclusive
がtrueの場合はそれよりも小さいかそれと等しい要素)を含む部分のビューClassCastException
- toElement
がこのセットのコンパレータと互換性がない場合(または、そのセットがコンパレータを持たない場合、toElement
がComparable
を実装していない場合)。実装は、セット内に現在存在している要素とtoElement
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- toElement
がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合IllegalArgumentException
- このセット自体が制限された範囲を持っており、toElement
がその範囲から外れている場合public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
NavigableSet
fromElement
よりも大きい要素(inclusive
がtrueの場合はそれよりも大きいかそれと等しい要素)を含む部分のビューを返します。返されるセットはこのセットに連動しており、返されるセットでの変更はこのセットに反映され、その逆の場合も同様です。返されるセットは、このセットがサポートする任意のセット・オペレーションをすべてサポートします。
返されるセットは、その範囲外の要素が挿入されようとすると、IllegalArgumentException
をスローします。
tailSet
、インタフェース: NavigableSet<E>
fromElement
- 返されるセットの下端点inclusive
- 返されるビューに下端点が含まれる場合はtrue
fromElement
に等しいかそれよりも大きい要素を持つ部分のビュー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()
SortedSet
comparator
、インタフェース: SortedSet<E>
public E first()
SortedSet
first
、インタフェース: SortedSet<E>
NoSuchElementException
- このセットが空の場合public E last()
SortedSet
last
、インタフェース: SortedSet<E>
NoSuchElementException
- このセットが空の場合public E lower(E e)
NavigableSet
null
を返します。lower
、インタフェース: NavigableSet<E>
e
- 照合する値e
よりも小さい要素の中で最大のもの。そのような要素が存在しない場合はnull
ClassCastException
- 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E floor(E e)
NavigableSet
null
を返します。floor
、インタフェース: NavigableSet<E>
e
- 照合する値e
と等しいか、それよりも小さい要素の中で最大のもの。そのような要素が存在しない場合はnull
ClassCastException
- 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E ceiling(E e)
NavigableSet
null
を返します。ceiling
、インタフェース: NavigableSet<E>
e
- 照合する値e
と等しいか、それよりも大きい要素の中で最小のもの。そのような要素が存在しない場合はnull
ClassCastException
- 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E higher(E e)
NavigableSet
null
を返します。higher
、インタフェース: NavigableSet<E>
e
- 照合する値e
よりも大きい要素の中で最小のもの。そのような要素が存在しない場合はnull
ClassCastException
- 指定された要素を、セット内に現在存在している要素と比較できない場合NullPointerException
- 指定された要素がnullであり、このセットが自然順序付けを使用しているかそのコンパレータがnull要素を許可しない場合public E pollFirst()
NavigableSet
null
を返します。pollFirst
、インタフェース: NavigableSet<E>
null
public E pollLast()
NavigableSet
null
を返します。pollLast
、インタフェース: NavigableSet<E>
null
public 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, 2014, Oracle and/or its affiliates. All rights reserved.