|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractCollection java.util.AbstractSet java.util.TreeSet
public class TreeSet
このクラスは、TreeMap インスタンスに連動した Set インタフェースを実装します。このクラスは、要素の自然順序付け (Comparable を参照) に従って、またはセットの作成時に提供されるコンパレータによって (使用するコンストラクタによって決まる)、昇順の要素順でソートセットがソートされることを保証します。
この実装は、基本オペレーション (add、remove、および contains) に保証済みの log(n) 時間コストを提供します。
あるセットが Set インタフェースを正しく実装するには、明示的なコンパレータが提供されているかどうかにかかわらず、そのセットによって維持される順序付けが「equals との一貫性」のあるものでなければいけないことに注意してください。(「equals との一貫性」の正確な定義については、Comparable または Comparator を参照。)これは Set インタフェースが equals オペレーションに基づいて定義されるためですが、TreeSet インスタンスはその compareTo メソッドまたは compare メソッドを使用してすべてのキー比較を実行するので、このメソッドによって等価とみなされる 2 つのキーは、セットの見地からすれば同じものです。セットの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されています。つまり、セットの動作は Set インタフェースの一般規約に従っていません。
この実装は同期化されません。複数のスレッドが並行してセットにアクセスし、それらのスレッドの少なくとも 1 つが構造的にセットを変更する場合には、外部で同期をとる必要があります。通常、構造的な変更は、セットを自然にカプセル化する特定のオブジェクトで同期をとることによって達成されます。この種のオブジェクトがない場合には、Collections.synchronizedList メソッドを使用してセットを「ラップ」する必要があります。これは、セットへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
このクラスの iterator メソッドによって返される反復子は「フェイルファスト」です。反復子が作成されたあとに、反復子自体の remove メソッド以外の方法でセットが変更された場合、反復子は ConcurrentModificationException をスローします。このように、並行して変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。反復子のフェイルファストの動作はバグを検出するためにのみ使用するべきです。
このクラスは、Java Collections Framework のメンバーです。
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, 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()
Comparable
public TreeSet(Comparator c)
c
- このセットのソートに使用されるコンパレータ。null 値は、要素の「自然順序付け」を使用することを示すpublic TreeSet(Collection c)
c
- 新しいセットを構成する要素
ClassCastException
- 指定されたコレクション内のキーが比較可能でない場合、または相互に比較可能でない場合
NullPointerException
- 指定されたコレクションが null である場合public TreeSet(SortedSet s)
s
- 新しいセットを構成する要素からなるソートセット
NullPointerException
- 指定されたソートセットが null の場合メソッドの詳細 |
---|
public Iterator iterator()
Collection
内の iterator
Set
内の iterator
AbstractCollection
内の iterator
public int size()
Collection
内の size
Set
内の size
AbstractCollection
内の size
public boolean isEmpty()
Collection
内の isEmpty
Set
内の isEmpty
AbstractCollection
内の isEmpty
public boolean contains(Object o)
Collection
内の contains
Set
内の contains
AbstractCollection
内の contains
o
- このセットにあるかどうかを判定するオブジェクト
ClassCastException
- 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public boolean add(Object o)
Collection
内の add
Set
内の add
AbstractCollection
内の add
o
- セットに追加される要素
ClassCastException
- 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public boolean remove(Object o)
Collection
内の remove
Set
内の remove
AbstractCollection
内の remove
o
- セットにあれば削除されるオブジェクト
ClassCastException
- 指定されたオブジェクトがセット内に現在ある要素と比較可能でない場合public void clear()
Collection
内の clear
Set
内の clear
AbstractCollection
内の clear
public boolean addAll(Collection c)
Collection
内の addAll
Set
内の addAll
AbstractCollection
内の addAll
c
- 追加される要素
ClassCastException
- 指定された要素がセット内に現在ある要素と比較可能でない場合
NullPointerException
- 指定されたコレクションが null である場合AbstractCollection.add(Object)
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);
SortedSet
内の subSet
fromElement
- subSet の下端点 (これを含む)toElement
- subSet の上端点 (これを含まない)
ClassCastException
- セットのコンパレータを使用して、fromElement と toElement を相互に比較できない場合 (または、セットに自然順序付けを使用するコンパレータがない場合)
IllegalArgumentException
- fromElement が toElement より大きい場合
NullPointerException
- fromElement または toElement が null で、このセットが自然順序付けを使用する場合、またはそのコンパレータが null 要素を許容しない場合public SortedSet headSet(Object toElement)
このメソッドが返すソートセットは、ユーザーが toElement より大きいか等しい要素を挿入しようとすると IllegalArgumentException をスローします。
注:このメソッドは常に、その上端点を含まないビューを返します。この端点を含むビューが必要であり、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に successor(highEndpoint) により限界を設けられた headSet を要求してください。たとえば、s が文字列のソートセットであるとします。次の慣用法では、s 内の high 以下のすべての文字列を保持するビューを取得します。
SortedSet head = s.headSet(high+"\0");
SortedSet
内の headSet
toElement
- headSet の上端点 (これを含まない)
ClassCastException
- toElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、toElement に Comparable が実装されていない場合)。
IllegalArgumentException
- このセット自体が subSet、headSet、または tailSet で、toElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException
- toElement が null で、このセットが自然順序付けを使用する場合、またはそのコンパレータが null 要素を許容しない場合public SortedSet tailSet(Object fromElement)
このメソッドが返すソートセットは、ユーザーが fromElement より小さい要素を挿入しようとすると IllegalArgumentException をスローします。 注:このメソッドは常に、その下端点を含むビューを返します。この端点を含まないビューが必要であり、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に successor(lowEndpoint) により限界を設けられた tailSet を要求してください。たとえば、s が文字列のソートセットであるとします。次の慣用法では、s 内の low より厳密に大きい すべての文字列を保持するビューを取得します。
SortedSet tail = s.tailSet(low+"\0");
SortedSet
内の tailSet
fromElement
- tailSet の下端点 (これを含む)
ClassCastException
- fromElement がセットのコンパレータと互換性がない場合 (または、セットにコンパレータがない場合、fromElement に Comparable が実装されていない場合)。
IllegalArgumentException
- このセット自体が subSet、headSet、または tailSet で、fromElement が指定した範囲の subSet、headSet、または tailSet にない場合
NullPointerException
- fromElement が null の場合に、セットが自然順序付けを使うとき、あるいはそのコンパレータが null 要素を許容しないときpublic Comparator comparator()
SortedSet
内の comparator
public Object first()
SortedSet
内の first
NoSuchElementException
- ソートセットが空の場合public Object last()
SortedSet
内の last
NoSuchElementException
- ソートセットが空の場合public Object clone()
Object
内の clone
Cloneable
|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。
ing HTML