|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractSet<E>
java.util.TreeSet<E>
public class TreeSet<E>
このクラスは、TreeMap のインスタンスに基づく Set インタフェースを実装します。このクラスでは、ソートセットが確実に要素の昇順でソートされます。ただし、ソート方法は、使用されるコンストラクタにより異なり、要素の「自然順序付け」(Comparable を参照) によりソートされる場合と、セット作成時に提供されるコンパレータによりソートされる場合があります。
この実装は、基本オペレーション (add、remove、および contains) に保証済みの log(n) 時間コストを提供します。
セットが Set インタフェースを正しく実装する場合は、明示的なコンパレータの提供の有無にかかわらず、セットで管理される順序付けは「equals との一貫性」が必要です (「equals との一貫性」の正確な定義については、Comparable または Comparator を参照)。これは Set インタフェースが equals オペレーションに基づいて定義されるためですが、TreeSet のインスタンスはその compareTo メソッドまたは compare メソッドを使ってすべてのキー比較を実行するので、このメソッドによって等しいと見なされる 2 つのキーはセットから見ても等価です。セットの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されていますが、Set インタフェースの汎用規約には準拠していません。
この実装は同期化されません。複数のスレッドが同時にセットにアクセスし、それらのスレッドの少なくとも 1 つが構造的にセットを変更する場合には、外部で同期をとる必要があります。通常、構造的な変更は、セットを自然にカプセル化する特定のオブジェクトで同期をとることによって達成されます。そのようなオブジェクトがない場合には、Collections.synchronizedSet メソッドを使ってセットを「ラップ」します。これは、セットへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
このクラスの iterator メソッドが返す Iterator は「フェイルファスト」です。つまり、反復子の作成後に、反復子自体の remove メソッド以外の方法でセットが変更されると、反復子は ConcurrentModificationException をスローします。したがって、同時に変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の同時変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。「反復子のフェイルファストの動作はバグを検出するためにのみ使用すべきです」
このクラスは、Java Collections Framework のメンバです。
Collection,
Set,
HashSet,
Comparable,
Comparator,
Collections.synchronizedSortedSet(SortedSet),
TreeMap,
直列化された形式| コンストラクタの概要 | |
|---|---|
TreeSet()
要素の自然順序付けに従ってソートされた、新しい空のセットを作成します。 |
|
TreeSet(Collection<? extends E> c)
指定されたコレクション内の要素を持ち、要素の「自然順序付け」に従ってソートされた新しいセットを作成します。 |
|
TreeSet(Comparator<? super E> c)
指定されたコンパレータに従ってソートされた、新しい空のセットを作成します。 |
|
TreeSet(SortedSet<E> s)
指定されたソートセットと同じ要素を持ち、同じ順序付けに従ってソートされた、新しいセットを作成します。 |
|
| メソッドの概要 | |
|---|---|
boolean |
add(E o)
指定された要素がセットの要素として存在しない場合に、その要素をセットに追加します。 |
boolean |
addAll(Collection<? extends E> c)
指定されたコレクション内のすべての要素をセットに追加します。 |
void |
clear()
すべての要素をセットから削除します。 |
Object |
clone()
TreeSet のインスタンスのシャローコピーを返します。 |
Comparator<? super E> |
comparator()
ソートセットを順序付けするのに使うコンパレータを返します。 |
boolean |
contains(Object o)
セットが、指定された要素を保持している場合に true を返します。 |
E |
first()
ソートセット内に現在ある最初 (下端) の要素を返します。 |
SortedSet<E> |
headSet(E toElement)
セットの toElement より小さい要素を持つ部分のビューを返します。 |
boolean |
isEmpty()
セットが要素を 1 つも保持していない場合に true を返します。 |
Iterator<E> |
iterator()
セット内の各要素についての反復子を返します。 |
E |
last()
ソートセット内に現在ある最後 (上端) の要素を返します。 |
boolean |
remove(Object o)
指定された要素があればセットから削除します。 |
int |
size()
セット内の要素数 (そのカーディナリティ) を返します。 |
SortedSet<E> |
subSet(E fromElement,
E toElement)
セットの fromElement (これを含む) 〜 toElement (これを含まない) の要素範囲を持つ部分のビューを返します。 |
SortedSet<E> |
tailSet(E fromElement)
セットの fromElement に等しいかこれより大きい要素を持つ部分のビューを返します。 |
| クラス java.util.AbstractSet から継承されたメソッド |
|---|
equals, hashCode, removeAll |
| クラス java.util.AbstractCollection から継承されたメソッド |
|---|
containsAll, retainAll, toArray, toArray, toString |
| クラス java.lang.Object から継承されたメソッド |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| インタフェース java.util.Set から継承されたメソッド |
|---|
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray |
| コンストラクタの詳細 |
|---|
public TreeSet()
Comparablepublic TreeSet(Comparator<? super E> c)
c - このセットをソートするために使用されるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すpublic TreeSet(Collection<? extends E> c)
c - 新しいセットを構成する要素
ClassCastException - 指定されたコレクション内のキーが比較可能でない場合、あるいは相互に比較可能でない場合
NullPointerException - 指定されたコレクションが null である場合public TreeSet(SortedSet<E> s)
s - 新しいセットを構成する要素からなるソートセット
NullPointerException - 指定されたソートセットが null の場合| メソッドの詳細 |
|---|
public Iterator<E> iterator()
Iterable<E> 内の iteratorCollection<E> 内の iteratorSet<E> 内の iteratorAbstractCollection<E> 内の iteratorpublic int size()
Collection<E> 内の sizeSet<E> 内の sizeAbstractCollection<E> 内の sizepublic boolean isEmpty()
Collection<E> 内の isEmptySet<E> 内の isEmptyAbstractCollection<E> 内の isEmptypublic boolean contains(Object o)
Collection<E> 内の containsSet<E> 内の containsAbstractCollection<E> 内の containso - このセットにあるかどうかを判定するオブジェクト
ClassCastException - 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public boolean add(E o)
Collection<E> 内の addSet<E> 内の addAbstractCollection<E> 内の addo - セットに追加される要素
ClassCastException - 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public boolean remove(Object o)
Collection<E> 内の removeSet<E> 内の removeAbstractCollection<E> 内の removeo - セットにあれば削除されるオブジェクト
ClassCastException - 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public void clear()
Collection<E> 内の clearSet<E> 内の clearAbstractCollection<E> 内の clearpublic boolean addAll(Collection<? extends E> c)
Collection<E> 内の addAllSet<E> 内の addAllAbstractCollection<E> 内の addAllc - 追加される要素
ClassCastException - 指定された要素がセット内に現在ある要素と比較可能でない場合
NullPointerException - 指定されたコレクションが null の場合AbstractCollection.add(Object)
public SortedSet<E> subSet(E fromElement,
E toElement)
このメソッドが返すソートセットは、ユーザが要素を指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その下端点は含むが上端点は含まない「片側が開いた範囲」を返します。上下端点を含む「閉じた範囲」が必要で、要素の型により指定された値の直後の計算が可能になる場合、単に lowEndpoint 〜 successor(highEndpoint) の部分範囲を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の low 〜 high のすべての文字列 (上下端点を含む) を保持するビューを取得します。
SortedSet sub = s.subSet(low, high+"\0");
同様のテクニックを使って、上下端点のどちらも含まない「開いた範囲」を生成できます。次の慣用法は、s 内の low 〜 high のすべての文字列 (上下端点を含まない) を保持するビューを取得します。
SortedSet sub = s.subSet(low+"\0", high);
SortedSet<E> 内の subSetfromElement - subSet の下端点 (これを含む)toElement - subSet の上端点 (これを含まない)
ClassCastException - セットのコンパレータを使用して、fromElement と toElement を相互に比較できない場合 (または、セットに自然順序付けを使用するコンパレータがない場合)
IllegalArgumentException - fromElement が toElement より大きい場合
NullPointerException - fromElement または toElement が null の場合に、セットが自然順序付けを使うとき、あるいはそのコンパレータが null 要素を許容しないときpublic SortedSet<E> headSet(E toElement)
このメソッドが返すソートセットは、ユーザが toElement より大きいか等しい要素を挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 端点を含まないビューを返します。この端点を含むビューを必要とし、要素の型により指定された値で直後の要素の計算が可能になる場合、単に successor(highEndpoint) によって限界を設けられた headSet を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の high より小さいか等しいすべての文字列を保持するビューを取得します。
SortedSet head = s.headSet(high+"\0");
SortedSet<E> 内の headSettoElement - headSet の上端点 (これを含まない)
ClassCastException - toElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、toElement に Comparable が実装されていない場合)
IllegalArgumentException - このセット自体が subSet、headSet、または tailSet で、toElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException - toElement が null の場合に、セットが自然順序付けを使うとき、あるいはそのコンパレータが null 要素を許容しないときpublic SortedSet<E> tailSet(E fromElement)
このメソッドが返すソートセットは、ユーザが fromElement より小さい要素を挿入しようとすると IllegalArgumentException をスローします。 注: このメソッドは常に、その (下) 端点を含むビューを返します。この端点を含まないビューを必要とし、要素の型により指定された値の直後の計算が可能になる場合、単に successor(lowEndpoint) によって限界を設けられた tailSet を指定してください。たとえば、s が文字列のソートセットである場合、次の慣用法は、s 内の low より大きいすべての文字列を保持するビューを取得します。
SortedSet tail = s.tailSet(low+"\0");
SortedSet<E> 内の tailSetfromElement - tailSet の下端点 (これを含む)
ClassCastException - fromElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、fromElement に Comparable が実装されていない場合)
IllegalArgumentException - このセット自体が subSet、headSet、または tailSet で、fromElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException - fromElement が null の場合に、セットが自然順序付けを使うとき、あるいはそのコンパレータが null 要素を許容しないときpublic Comparator<? super E> comparator()
SortedSet<E> 内の comparatorpublic E first()
SortedSet<E> 内の firstNoSuchElementException - ソートセットが空の場合public E last()
SortedSet<E> 内の lastNoSuchElementException - ソートセットが空の場合public Object clone()
Object 内の cloneCloneable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。