appendix> util> Map> TreeMap TOPUPPREVNEXT

java.util.TreeMap<K,V>

【概要】

SortedMap を実装した 赤黒木 (Red-Black tree) です。 セット <K> (キー)の要素と コレクション <V> (値)の要素の組を整列して保持します。

キーの CompareTo で整列する場合と、 作成時に指定するコンパレータの compare で整列する場合があります。

add 、 remove 、 contains が log(N) 時間で処理されます。

同期化されません。複数のスレッドから要素を追加・削除する可能性のある場合は

SortedMap set = Collections.synchronizedMap(new TreeMap( ... ));
のように、synchronizedMap メソッドでラップします。

イテレータを取得した後で、そのイテレータ以外の remove や add を行うと、 ConcurrentModificationException が発生します。 このようなケースを厳密に検出することを保障しているわけではありません。

【継承関係】

  java.lang.Object
     └java.util.AbstractMap<K,V>
          └java.util.TreeMap<K,V>

【コンストラクタ】

コンストラクタ機能
TreeMap ( ) 空のマップを作成します。 整列はキーの compareTo で行われます。
TreeMap ( Comparator<? super K> cp ) 空のマップを作成します。 整列はコンパレータ cpcompare で行われます。
TreeMap ( Map<? extends K, ? extends V> m) マップ m と同じマッピングを含み、 キーの compareTo で整列された新しいマップを作成します。
TreeMap ( SortedMap<K, ? extends V> m ) s と同じ要素を含み、 同じ順序で整列される新しいマップを生成します。

【メソッド】

メソッド機能
void clear ( ) この TreeMap からすべての対を削除します。マップは空になります。
Object clone ( ) この TreeMap のコピーを返します。要素自体のコピーは作成しません。
Comparator<> super K> comparator ( ) この TreeMap を整列するために使われているコンパレータを返します。
boolean containsKey ( Object key ) この TreeMap にキー key がある場合に true 。
boolean containsValue ( Object value ) この TreeMap に値 value を持つ対がある場合に true 。
Set<Map.Entry<K,V> entrySet ( ) この TreeMap のマッピング(対)のセットビューを返します。
K firstKey ( ) この TreeMap の先頭のキー。
V get ( Object key ) キー key と対になっている値。
SortedMap<K,V> headMap ( K toKey) この TreeMap の toKey より小さいキーを持つ部分のビュー。
Set<K> keySet ( ) この TreeMap のキーの Set ビューを返します。
K lastKey ( ) この TreeMap の最後のキー。
V put ( K key, V value) keyvalue の対をこの TreeMap に追加します。 同一のキーがある場合には、値は value で置き換えられます。
void putAll ( Map<? extends K, ? extends V> map ) map から全てのマッピングをこの TreeMap にコピーします。
V remove ( Object key ) key をキーとするマッピング(対)を削除します。
int size ( ) この TreeMap に含まれるマッピングの個数。
SortedMap<K,V> subMap ( K fromKey, K toKey ) fromKey 以上で、toKey 未満のキーを持つ マッピングのビューを返します。
SortedMap<K,V> tailMap ( K fromKey) この TreeMap の fromKey 以上の部分のビューを返します。
Collection<V> values ( ) この TreeMap に含まれる値のコレクションビューを返します。

【AbstractMap から継承したメソッド】

メソッド機能
boolean equals ( Object o ) このマップと o が等しい場合に true。
int hashCode ( ) このマップのハッシュコード。
boolean isEmpty ( ) この TreeMap に対が1つもない場合 true。
String toString ( ) この TreeMap の文字列表現。 マッピングは、キーの順にコンマと空白で区切って並べられ、全体をを中カッコで括られます。 各マッピングは、キーと値を String.valueOf() で文字列に変換され、 等号をはさんで表示されます。

【例1】

コマンドラインに書かれた文字列の出現頻度を表示するプログラム
New Features and Enhancements J2SE 5.0Autoboxing の最初に掲げられている例を参考にしました。

プログラム TreeMapDemo1.java

実行結果

TreeMapDemo1-1.gif

ジェネリック と ボクシング・アンボクシングを利用して J2SE 5.0 で記述すると、
プログラム TreeMapDemo1T.java

実行結果は同じです。

TreeMapDemo1T-1-1.gif

Top Page
更新日:2005-07-28