|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.AbstractMap | +--java.util.TreeMap
SortedMap インタフェースの実装に基づく Red-Black ツリーです。このクラスでは、マップが確実にキーの昇順でソートされます。ただし、ソート方法はコンストラクタにより異なり、キーのクラスの「自然順序付け」(Comparable を参照) によりソートされる場合と、作成時に提供されるコンパレータによってソートされる場合があります。
この実装は、containsKey、get、put、remove の各オペレーションに保証済みの log(n) 時間コストを提供します。アルゴリズムは、Cormen、Leiserson、Rivest の「Introduction to Algorithms」のものに手を加えています。
ソートマップにより Map インタフェースを正しく実装する場合は、明示的なコンパレータの提供の有無にかかわらず、ソートマップで管理される順序付けは「equals と一貫性」が必要です (「equals との一貫性」の正確な定義については、Comparable または Comparator を参照)。これは Map インタフェースが equals オペレーションに基づいて定義されるためですが、マップはその compareTo メソッドまたは compare メソッドを使ってすべてのキーを比較するので、このメソッドによって等しいと見なされる 2 つのキーはソートマップから見ても等価です。ソートマップの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されていますが、Map インタフェースの一般規約には準拠していません。
この実装は同期化されません。複数のスレッドが同時にマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で同期をとる必要があります。構造的な変更とは、1 つ以上のマッピングを追加または削除するようなオペレーションです。既存のキーに関連付けられている値を変更する処理は、構造的な変更ではありません。通常、構造的な変更は、マップを自然にカプセル化する特定のオブジェクトで同期をとることによって達成されます。そのようなオブジェクトがない場合には、Collections.synchronizedMap メソッドを使ってマップを「ラップ」します。マップへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
Map m = Collections.synchronizedMap(new TreeMap(...));
このクラスの「コレクションビューメソッド」によって返される反復子は 「フェイルファスト」です。つまり、反復子の作成後に、反復子自体の remove メソッドまたは add メソッド以外の方法でマップが構造的に変更されると、反復子は ConcurrentModificationException をスローします。したがって、同時に変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、直ちにかつ手際よく例外をスローします。
Map
,
HashMap
,
Hashtable
,
Comparable
,
Comparator
,
Collection
,
Collections.synchronizedMap(Map)
, 直列化された形式クラス java.util.Map から継承した内部クラス |
Map.Entry |
コンストラクタの概要 | |
TreeMap()
キーの自然順序付けに従ってソートされた、新しい空のマップを作成します。 |
|
TreeMap(Comparator c)
指定のコンパレータに従ってソートされた、新しい空のマップを作成します。 |
|
TreeMap(Map m)
指定のマップと同じマッピングを持ち、キーの「自然順序付け」に従ってソートされた新しいマップを作成します。 |
|
TreeMap(SortedMap m)
指定の SortedMap と同じマッピングを持ち、同じ順序付けに従ってソートされた、新しいマップを作成します。 |
メソッドの概要 | |
void |
clear()
TreeMap からすべてのマッピングを削除します。 |
Object |
clone()
TreeMap のインスタンスのシャローコピーを返します。 |
Comparator |
comparator()
マップを順序付けするのに使うコンパレータを返します。 |
boolean |
containsKey(Object key)
マップが指定のキーのマッピングを保持する場合に true を返します。 |
boolean |
containsValue(Object value)
マップが 1 つ以上のキーを指定の値にマップする場合に true を返します。 |
Set |
entrySet()
マップ内に保持されているマッピングのセットビューを返します。 |
Object |
firstKey()
ソートマップ内に現在ある最初 (下端) のキーを返します。 |
Object |
get(Object key)
マップが指定のキーをマップする値を返します。 |
SortedMap |
headMap(Object toKey)
マップの toKey より小さいキーを持つ部分のビューを返します。 |
Set |
keySet()
マップ内に保持されているキーの Set ビューを返します。 |
Object |
lastKey()
ソートマップ内に現在ある最後 (上端) のキーを返します。 |
Object |
put(Object key,
Object value)
指定の値と指定されたキーをこのマップに関連付けます。 |
void |
putAll(Map map)
指定のマップからすべてのマッピングをマップにコピーします。 |
Object |
remove(Object key)
キーのマッピングがあれば TreeMap から削除します。 |
int |
size()
マップ内のキー値マッピングの数を返します。 |
SortedMap |
subMap(Object fromKey,
Object toKey)
マップの fromKey (これを含む) 〜 toKey (これを含まない) のキー範囲を持つ部分のビューを返します。 |
SortedMap |
tailMap(Object fromKey)
マップの fromKey 以上のキーを持つ部分のビューを返します。 |
Collection |
values()
マップ内に保持されている値のコレクションビューを返します。 |
クラス java.util.AbstractMap から継承したメソッド |
equals, hashCode, isEmpty, toString |
クラス java.lang.Object から継承したメソッド |
finalize, getClass, notify, notifyAll, wait, wait, wait |
インタフェース java.util.Map から継承したメソッド |
equals, hashCode, isEmpty |
コンストラクタの詳細 |
public TreeMap()
Comparable
public TreeMap(Comparator c)
c
- このマップをソートするために使用されるコンパレータ。null 値は、キーの「自然順序付け」を使用することを示すpublic TreeMap(Map m)
m
- マッピングがこのマップに配置されるマップClassCastException
- t 内のキーが Comparable でないか、相互に比較可能でない場合public TreeMap(SortedMap m)
m
- マッピングがこのマップに配置され、コンパレータがこのマップのソートに使用される、ソートされたマップメソッドの詳細 |
public int size()
Map
内の size
AbstractMap
内の size
public boolean containsKey(Object key)
Map
内の containsKey
AbstractMap
内の containsKey
key
- マップにあるかどうかが判定されるキーClassCastException
- キーがマップ内に現在あるキーと比較できない場合NullPointerException
- キーが null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときpublic boolean containsValue(Object value)
Map
内の containsValue
AbstractMap
内の containsValue
value
- Map にあるかどうかを判定される値public Object get(Object key)
Map
内の get
AbstractMap
内の get
key
- 関連付けられた値が返されるキーClassCastException
- キーがマップ内に現在あるキーと比較できない場合NullPointerException
- キーが null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときcontainsKey(Object)
public Comparator comparator()
SortedMap
内の comparator
public Object firstKey()
SortedMap
内の firstKey
NoSuchElementException
- Map が空の場合public Object lastKey()
SortedMap
内の lastKey
NoSuchElementException
- Map が空の場合public void putAll(Map map)
Map
内の putAll
AbstractMap
内の putAll
map
- マップに格納されるマッピングClassCastException
- 指定のマップ内のキーまたは値のクラスが、キーまたは値をマップ内に格納させないようにする場合NullPointerException
- マップが null キーを許可しないが、指定のキーが null である場合public Object put(Object key, Object value)
Map
内の put
AbstractMap
内の put
key
- 指定される値が関連付けられるキーvalue
- 指定されるキーに関連付けられる値ClassCastException
- キーがマップ内に現在あるキーと比較できない場合NullPointerException
- キーが null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときpublic Object remove(Object key)
Map
内の remove
AbstractMap
内の remove
ClassCastException
- キーがマップ内に現在あるキーと比較できない場合NullPointerException
- キーが null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときpublic void clear()
Map
内の clear
AbstractMap
内の clear
java.util.Map
からコピーされたタグ:UnsupportedOperationException
- clear がマップによってサポートされていない場合public Object clone()
Object
内の clone
public Set keySet()
Map
内の keySet
AbstractMap
内の keySet
public Collection values()
Map
内の values
AbstractMap
内の values
public Set entrySet()
Map
内の entrySet
AbstractMap
内の entrySet
Map.Entry
public SortedMap subMap(Object fromKey, Object toKey)
このメソッドが返すソートマップは、ユーザが fromKey より小さいキーまたは toKey と同じかこれより大きいキーを挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その下端点は含むが上端点は含まない「片側が開いた範囲」を返します。上下端点を含む「閉じた範囲」が必要で、キーの型により直後のキーが計算可能になる場合、単に lowEndpoint 〜 successor(highEndpoint) の部分範囲を指定してください。たとえば、m が文字列のキーを持つソートマップである場合、次の慣用法は、キーが low 〜 high の範囲 (上下端点を含む) にある m 内のすべてのキーと値のマッピングを保持するビューを取得します。
SortedMap sub = m.submap(low, high+"\0");同様のテクニックを使って、上下端点のどちらも含まない「開いた範囲」を生成できます。次の慣用法は、キーが low 〜 high の範囲 (上下端点を含まない) にある m 内のすべてのキーと値のマッピングを保持するビューを取得します。
SortedMap sub = m.subMap(low+"\0", high);
SortedMap
内の subMap
fromKey
- subMap の下端点 (これを含む)toKey
- subMap の上端点 (これを含まない)ClassCastException
- マップのコンパレータを使用して、fromKey と toKey を相互に比較できない場合 (または、マップに自然順序付けを使用するコンパレータがない場合)IllegalArgumentException
- fromKey が toKey より大きい場合NullPointerException
- fromKey または toKey が null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときpublic SortedMap headMap(Object toKey)
このメソッドが返すソートマップは、ユーザが toKey と同じかこれより大きいキーを挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 端点を含まないビューを返します。この端点を含むビューを必要とし、キーの型により直後のキーが計算可能になる場合、キーは単に successor(highEndpoint) によって限界を設けられた headMap を指定してください。たとえば、m が文字列のキーを持つソートマップである場合、次の慣用法は、キーが high と同じかこれより小さい m 内のすべてのキー値マッピングを保持するビューを取得します。
SortedMap head = m.headMap(high+"\0");
SortedMap
内の headMap
toKey
- headMap の上端点 (これを含まない)ClassCastException
- toKey がマップのコンパレータと互換性がない場合 (または、マップにコンパレータがない場合、toKey に Comparable が実装されていない場合)IllegalArgumentException
- このマップ自体が subMap、headMap、または tailMap で、toKey が指定した範囲の subMap、headMap、または tailMap にない場合NullPointerException
- toKey が null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないときpublic SortedMap tailMap(Object fromKey)
このメソッドが返すソートマップは、ユーザが fromKey より小さいキーを挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 端点を含むビューを返します。この端点を含まないビューを必要とし、要素の型により直後の要素の計算が可能になる場合、値は単に successor(lowEndpoint) によって限界を設けられた tailMap を指定してください。たとえば、m が文字列のキーを持つソートマップである場合、次の慣用法は、キーが low より大きい m 内のすべてのキー値マッピングを保持するビューを取得します。
SortedMap tail = m.tailMap(low+"\0");
SortedMap
内の tailMap
fromKey
- tailMap の下端点 (これを含む)ClassCastException
- fromKey がマップのコンパレータと互換性がない場合 (または、マップにコンパレータがない場合、fromKey に Comparable が実装されていない場合)IllegalArgumentException
- このマップ自体が subMap、headMap、または tailMap で、fromKey が指定した範囲の subMap、headMap、または tailMap にない場合NullPointerException
- fromKey が null の場合に、マップが自然順序付けを使うとき、あるいはそのコンパレータが null キーを許容しないとき
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.