OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:683
区分:プログラム  |  分類:Java  |  最終更新日:2015/07/09
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【Java】TreeMapの基本操作
関連タグ:Java, コレクション, 配列, Map, TreeMap
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 11,814
Java関連技術まとめ > 【Java】TreeMapの基本操作

java.util.TreeMapはキーの検索に二分探索木を用いたjava.util.Mapの実装クラスになります。HashMap同様、キーと値の組み合わせで要素を管理し、キーの重複も許可されません。また、利用できるメソッドもHashMapと共通ですが、違う点としてTreeMapは要素をキーで自動ソートし、各要素の並び順を保持します。なお、HashMapでは許可されていたnull値もTreeMapでは使用できません。

 

TreeMapクラスの特長と主要メソッド

【クラスの特長】

クラス要素の重複nullの挿入自動ソート
java.util.TreeMap 不可 不可 あり

 

【クラスの主要メソッド】

戻り値メソッド説明
void clear() マップの全ての要素を削除します。
Object clone() マップのコピー(シャローコピー)を返します。
boolean containsKey(Object k) マップにキーkが含まれているかを判定します。
boolean containsValue(Object v) マップに値vが含まれているかを判定します。
V get(Object k)

キーkと関連付いている値Vを返します。

ただし、キーkがマップに存在しない場合はnullを返します。

boolean isEmpty() マップが空かどうかを判定します。
V put(Object k, Object v)

指定されたキーkと値vのセットをマップに追加します。

キーkが新規の場合は追加となり、既に存在している場合は上書きとなります。

V remove(Object k)

指定されたキーkの要素をマップから削除します。

戻り値はキーkが存在する場合は削除された要素の値が、存在しない場合はnullが返ります。

int size()

マップの要素数を返します。

TreeMapを生成する

TreeMapオブジェクトはnew演算子を使用して以下のように生成します。

 

【JDK1.5以降】

TreeMap<型1, 型2> 変数名 = new TreeMap<型1, 型2>();

 

上記方法での生成は、ジェネリクス機能が導入されたJ2SE5.0(JDK1.5)以降に可能です。それ以前の古いバージョンでは、以下の方法で生成します。

 

TreeMap 変数名 = new TreeMap();

TreeMapにデータを追加する

TreeMapオブジェクトにデータを追加する場合は、putメソッドを使用します。

 

TreeMap<String, String> tMap = new TreeMap<String, String>();

tMap.put("A003", "Microsoft");
tMap.put("A001", "Google");
tMap.put("A002", "Apple");

 

上記例ではTreeMapオブジェクトに3つの要素が追加されます。追加された要素はキーで自動ソートされるので、並び順は以下になります。

キー
A001 Google
A002 Apple
A003 Microsoft

TreeMapのデータを参照する

TreeMapオブジェクトのデータを参照する場合は、getメソッドを使用します。

 

System.out.println(map.get("A001"));

 

getメソッドは引数にキーを指定することで該当要素の値を取得します。ただし、指定のキーがマップに存在しない場合はnullを返します。エラーとはなりません。

TreeMapのデータを削除する

TreeMapオブジェクトのデータを削除する場合は、removeメソッドを使用します。

 

System.out.println(map.remove("A001"));

 

removeメソッドは引数にキーを指定することで該当要素を削除します。メソッドの戻り値には削除された要素の値が返りますが、指定のキーがマップに存在しなかった場合はnullが返ります。こちらもgetメソッド同様、エラーとはなりません。

サンプルプログラム

以下サンプルではTreeMapに複数の要素を格納し、格納した要素のキーと値を標準出力に出力します。

 

import java.util.TreeMap;

public static void main(String[] args) {

    TreeMap<String, String> map = new TreeMap<String, String>();

    tMap.put("B", "VB");
    tMap.put("D", "Java");
    tMap.put("A", "PHP");
    tMap.put("C", "C#");

    for (String key : map.keySet()){
        System.out.println(key + ":" + map.get(key));
    }
}

【実行結果】

A:PHP
B:VB
C:C#
D:Java
関連記事
外部リンク
- 記事検索 -