|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractMap java.util.TreeMap
public class 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 をスローします。このように、並行して変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。反復子のフェイルファストの動作はバグを検出するためにのみ使用するべきです。
このクラスは、Java Collections Framework のメンバーです。
Map
,
HashMap
,
Hashtable
,
Comparable
,
Comparator
,
Collection
,
Collections.synchronizedMap(Map)
,
直列化された形式コンストラクタの概要 | |
---|---|
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 でないか、相互に比較可能でない場合
NullPointerException
- 指定されたマップが null の場合public TreeMap(SortedMap m)
m
- マッピングがこのマップに配置され、コンパレータがこのマップのソートに使用される、ソートされたマップ
NullPointerException
- 指定されたソートマップが null の場合メソッドの詳細 |
---|
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 のキーを許可しないのに、指定されたマップに 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
key
- マッピングを削除する必要があるキー
ClassCastException
- キーがマップ内に現在あるキーと比較できない場合
NullPointerException
- キーが null の場合にこのマップが自然順序付けを使うとき、またはそのコンパレータが null キーを許容しないときpublic void clear()
Map
内の clear
AbstractMap
内の clear
public Object clone()
AbstractMap
内の clone
Cloneable
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 キーを許容しない場合
|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。