カテゴリ: Java 更新日: 2025/11/15

JavaのTreeMapクラスの使い方を完全ガイド!初心者でもわかるソート付きマップ

TreeMapクラス
TreeMapクラス

先生と生徒の会話形式で理解しよう

生徒

「先生、Javaでキーと値を組み合わせてデータを管理するクラスってありますか?」

先生

「JavaにはMapインターフェースを実装したクラスがいくつもあり、その中の一つがTreeMapです。」

生徒

「HashMapとどう違うんですか?」

先生

「TreeMapはキーを自動的に並び替えて保持してくれるのが特徴です。それでは詳しく見ていきましょう。」

1. TreeMapクラスとは?

1. TreeMapクラスとは?
1. TreeMapクラスとは?

JavaのTreeMapクラスは、java.utilパッケージに含まれているマップ系コレクションの一つです。HashMapと同じくキーと値のペアを格納しますが、大きな違いはキーが自動的に昇順にソートされて保持される点です。そのため、データを整理して保持したい場合に便利です。

例えば、会員番号や商品コードなど、キーを順番通りに並べて処理したいときに役立ちます。内部的には赤黒木というデータ構造を使って実現されており、検索や挿入も効率的に行うことができます。

2. TreeMapの基本的な使い方

2. TreeMapの基本的な使い方
2. TreeMapの基本的な使い方

TreeMapを使うには、キーと値の型を指定して宣言します。以下は文字列をキー、整数を値として扱う例です。


import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        TreeMap<String, Integer> scores = new TreeMap<>();
        scores.put("Tanaka", 80);
        scores.put("Suzuki", 90);
        scores.put("Yamada", 75);

        System.out.println(scores);
    }
}

{Suzuki=90, Tanaka=80, Yamada=75}

このように追加した順番に関係なく、キーが昇順に並べ替えられて格納されます。

3. TreeMapとHashMapの違い

3. TreeMapとHashMapの違い
3. TreeMapとHashMapの違い

初心者が混乱しやすいのが、TreeMapとHashMapの違いです。HashMapはキーの順序を保証しませんが、TreeMapは常にキーを昇順に整列させて保持します。そのため、データを順序付きで扱いたい場合はTreeMapが適しています。

ただし、TreeMapは内部でソート処理を行うため、HashMapに比べて挿入や検索の速度が若干遅くなります。性能を重視するか、順序を重視するかによって使い分けるのがポイントです。

4. よく使うメソッド

4. よく使うメソッド
4. よく使うメソッド

TreeMapクラスでよく利用されるメソッドをいくつか紹介します。

  • put(K key, V value):キーと値を追加する
  • get(Object key):指定したキーの値を取得する
  • remove(Object key):キーに対応する要素を削除する
  • firstKey():最小のキーを取得する
  • lastKey():最大のキーを取得する
  • containsKey(Object key):キーが存在するか確認する

import java.util.TreeMap;

public class TreeMapMethods {
    public static void main(String[] args) {
        TreeMap<Integer, String> users = new TreeMap<>();
        users.put(3, "Taro");
        users.put(1, "Hanako");
        users.put(2, "Ken");

        System.out.println("最小のキー: " + users.firstKey());
        System.out.println("最大のキー: " + users.lastKey());
        System.out.println("2番のユーザー: " + users.get(2));
        users.remove(1);
        System.out.println("削除後: " + users);
    }
}

最小のキー: 1
最大のキー: 3
2番のユーザー: Ken
削除後: {2=Ken, 3=Taro}

5. Comparatorを使った並び替え

5. Comparatorを使った並び替え
5. Comparatorを使った並び替え

TreeMapではデフォルトでキーが昇順に並びますが、Comparatorを指定することで独自の並び順を定義できます。例えば降順に並べたい場合は以下のように記述します。


import java.util.TreeMap;
import java.util.Comparator;

public class TreeMapCustomSort {
    public static void main(String[] args) {
        TreeMap<String, Integer> map = new TreeMap<>(Comparator.reverseOrder());
        map.put("C", 3);
        map.put("A", 1);
        map.put("B", 2);

        System.out.println(map);
    }
}

{C=3, B=2, A=1}

このようにComparatorを使うことで、用途に応じた柔軟な順序管理が可能になります。

6. TreeMapの活用シーン

6. TreeMapの活用シーン
6. TreeMapの活用シーン

TreeMapは、データをキーの順序付きで扱いたい場合に特に有効です。例えば、スコアランキングを管理したり、商品をコード順に並べて表示したりする用途に適しています。また、範囲検索を行いたい場合にも便利で、subMapheadMaptailMapといったメソッドを利用すると、特定の範囲のデータだけを取り出すことができます。

システム開発では、単にデータを格納するだけでなく、順序や検索の効率を意識した設計が重要です。その意味でもTreeMapは基礎を学ぶのにぴったりのクラスです。

7. HashMapやLinkedHashMapとの比較

7. HashMapやLinkedHashMapとの比較
7. HashMapやLinkedHashMapとの比較

Javaのマップ系クラスにはいくつかの選択肢があります。HashMapは高速だが順序を保証しない、LinkedHashMapは挿入順序を保持する、そしてTreeMapはキーの昇順にソートするという違いがあります。初心者のうちは「順序をどう扱いたいか」に注目してクラスを選ぶと理解しやすいです。

特に検索エンジンや業務システムの開発では、データの並び順を考慮する場面が多いため、TreeMapを適切に使いこなせるようになると設計力が向上します。

カテゴリの一覧へ
新着記事
Javaの@FunctionalInterfaceアノテーションの使い方を完全ガイド!初心者でもわかる関数型インターフェース
JavaのHashSetのaddメソッドを完全ガイド!初心者でもわかるセットの使い方
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
Spring Securityでフォームログインを実装!ログイン・ログアウト・Remember-Meの設定方法まとめ
人気記事
No.1
Java&Spring記事人気No1
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのDateクラスの使い方を完全ガイド!初心者でもわかる日付操作
No.4
Java&Spring記事人気No4
Javaのラムダ式anyMatchの使い方:containsやList検索の実践テクニック
No.5
Java&Spring記事人気No5
Javaのラムダ式でListを抽出&変換!filterとmapでスマートに操作
No.6
Java&Spring記事人気No6
JSPで使えるJavaコードの書き方を徹底解説!初心者向けルールと制限ポイント
No.7
Java&Spring記事人気No7
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.8
Java&Spring記事人気No8
Javaのcountの使い方を完全ガイド!ラムダ式で件数カウントの定石をマスターしよう