|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.AbstractCollection | +--java.util.AbstractSet | +--java.util.TreeSet
このクラスは、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 をスローします。したがって、同時変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、速やかにかつクリーンに失敗します。
Collection
,
Set
,
HashSet
,
Comparable
,
Comparator
,
Collections.synchronizedSortedSet(SortedSet)
,
TreeMap
, 直列化された形式コンストラクタの概要 | |
TreeSet()
要素の自然順序付けに従ってソートされた、新しい空のセットを作成します。 |
|
TreeSet(Collection c)
指定されたコレクション内の要素を持ち、要素の「自然順序付け」に従ってソートされた新しいセットを作成します。 |
|
TreeSet(Comparator c)
指定されたコンパレータに従ってソートされた、新しい空のセットを作成します。 |
|
TreeSet(SortedSet s)
指定されたソートセットと同じ要素を持ち、同じ順序付けに従ってソートされた、新しいセットを作成します。 |
メソッドの概要 | |
boolean |
add(Object o)
指定されたオブジェクトがセットの要素として存在しない場合に、そのオブジェクトをセットに追加します。 |
boolean |
addAll(Collection c)
指定されたコレクション内のすべての要素をセットに追加します。 |
void |
clear()
すべての要素をセットから削除します。 |
Object |
clone()
TreeSet のインスタンスのシャローコピーを返します。 |
Comparator |
comparator()
ソートセットを順序付けするのに使うコンパレータを返します。 |
boolean |
contains(Object o)
セットが、指定された要素を保持している場合に true を返します。 |
Object |
first()
ソートセット内に現在ある最初 (下限) の要素を返します。 |
SortedSet |
headSet(Object toElement)
セットの toElement より小さい要素を持つ部分のビューを返します。 |
boolean |
isEmpty()
セットが要素を 1 つも保持していない場合に true を返します。 |
Iterator |
iterator()
セット内の各要素についての反復子を返します。 |
Object |
last()
ソートセット内に現在ある最後 (上限) の要素を返します。 |
boolean |
remove(Object o)
指定された要素があればセットから削除します。 |
int |
size()
セット内の要素数 (そのカーディナリティ) を返します。 |
SortedSet |
subSet(Object fromElement,
Object toElement)
セットの fromElement (これを含む) 〜 toElement (これを含まない) の要素範囲を持つ部分のビューを返します。 |
SortedSet |
tailSet(Object fromElement)
セットの fromElement に等しいかこれより大きい要素を持つ部分のビューを返します。 |
クラス java.util.AbstractSet から継承したメソッド |
equals,
hashCode |
クラス java.util.AbstractCollection から継承したメソッド |
containsAll,
removeAll,
retainAll,
toArray,
toArray,
toString |
クラス java.lang.Object から継承したメソッド |
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public TreeSet()
Comparable
public TreeSet(Comparator c)
public TreeSet(Collection c)
c
- 新しいセットを構成する要素public TreeSet(SortedSet s)
s
- 新しいセットを構成する要素からなるソートセットメソッドの詳細 |
public Iterator iterator()
public int size()
public boolean isEmpty()
public boolean contains(Object o)
o
- このセットにあるかどうかを判定するオブジェクトpublic boolean add(Object o)
o
- セットに追加される要素public boolean remove(Object o)
o
- セットにあれば削除されるオブジェクトpublic void clear()
public boolean addAll(Collection c)
c
- 追加される要素public SortedSet subSet(Object fromElement, Object 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);
fromElement
- subSet の下限点 (これを含む)toElement
- subSet の上限点 (これを含まない)public SortedSet headSet(Object toElement)
このメソッドが返すソートセットは、ユーザが toElement より大きいか等しい要素を挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 限点を含まないビューを返します。この限点を含むビューを必要とし、要素の型が直後の要素の計算を可能にしている場合、単に successor(highEndpoint) によって限界を設けられた headSet を指定してください。たとえば、s が文字列のソートセットである場合、次のイディオムは、s 内の high より小さいか等しいすべての文字列を保持するビューを取得します。
SortedSet head = s.headSet(high+"¥0");
toElement
- headSet の上限点 (これを含まない)public SortedSet tailSet(Object fromElement)
このメソッドが返すソートセットは、ユーザが fromElement より小さい要素を挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 限点を含むビューを返します。この限点を含まないビューを必要とし、要素の型が直後の要素の計算を可能にしている場合、単に successor (lowEndpoint) によって限界を設けられた tailSet を指定してください。たとえば、s が文字列のソートセットである場合、次のイディオムは、s 内の low より大きいすべての文字列を保持するビューを取得します。
SortedSet tail = s.tailSet(low+"¥0");
fromElement
- tailSet の下限点 (含む)public Comparator comparator()
public Object first()
public Object last()
public Object clone()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |