カテゴリ: Javaのマップ 更新日: 2026/08/12

JavaのTreeMapとは?キーの順序を自動で並び替えるMapの使い方を初心者向けに徹底解説

2029
Java の TreeMap とは?キーの順序を保つマップの使い方

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

生徒

「JavaのMapを勉強しているんですが、データをキーの順番で並べて保存する方法ってありますか?」

先生

「JavaにはTreeMapというクラスがあります。これはキーの順序を自動的に並び替えて管理してくれるMapです。」

生徒

「HashMapと何が違うんですか?」

先生

HashMapは順序を保証しませんが、TreeMapはキーを自動で昇順に並べて保存します。データを並び替えて管理したいときに便利です。」

生徒

「それは便利そうですね。具体的な使い方を知りたいです。」

先生

「それでは、JavaのTreeMapの基本から順番に学んでいきましょう。」

1. JavaのTreeMapとは

1. JavaのTreeMapとは
1. JavaのTreeMapとは

JavaのTreeMapとは、Mapインターフェースを実装したクラスの一つで、キーを自動的に並び替えて管理するコレクションです。Javaのコレクションフレームワークの中でも、データを順序付きで管理したいときによく使われます。

通常のHashMapでは、キーの順番は保証されません。そのため、データを取り出したときの順番は毎回変わる可能性があります。

一方、TreeMapではキーが自動的に昇順に並び替えられるため、データを常に整列された状態で管理できます。例えば、番号順、アルファベット順、日付順などでデータを管理する場合にとても便利です。

また、TreeMapは内部で木構造を使ってデータを管理しているため、検索や追加を効率的に行うことができます。Java初心者でも理解しやすいMapクラスの一つなので、基本的な使い方を覚えておくとプログラムの幅が広がります。

2. TreeMapの基本的な使い方

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

まずはJavaでTreeMapを作成する基本的な方法を見てみましょう。TreeMapを使うには、java.util.TreeMapをインポートします。

TreeMapは、キーと値のペアでデータを保存するMap構造です。キーを基準にして自動的に並び替えが行われます。


import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {

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

        map.put(3, "Apple");
        map.put(1, "Banana");
        map.put(2, "Orange");

        System.out.println(map);
    }
}

実行すると、キーの順番で並び替えられて表示されます。


{1=Banana, 2=Orange, 3=Apple}

このように、入力した順番ではなくキーの昇順で表示されるのがTreeMapの特徴です。JavaのMapでデータを並び替えて管理したい場合には、このTreeMapがとても役立ちます。

3. TreeMapにデータを追加する方法

3. TreeMapにデータを追加する方法
3. TreeMapにデータを追加する方法

TreeMapにデータを追加するには、putメソッドを使用します。これはMapで最も基本的な操作の一つです。

キーと値をセットで登録することで、データを管理できます。もし同じキーが存在する場合は、値が上書きされる仕組みになっています。


import java.util.TreeMap;

public class TreeMapPutExample {
    public static void main(String[] args) {

        TreeMap<String, Integer> scores = new TreeMap<>();

        scores.put("Math", 80);
        scores.put("English", 75);
        scores.put("Science", 90);

        System.out.println(scores);
    }
}

{English=75, Math=80, Science=90}

このように文字列のキーでもアルファベット順で自動的に並び替えられます。JavaのTreeMapはキーの自然順序を使ってソートされるため、特別な設定をしなくても順序付きのMapとして利用できます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第5版をAmazonで見る

※ Amazon広告リンク

4. TreeMapからデータを取得する方法

4. TreeMapからデータを取得する方法
4. TreeMapからデータを取得する方法

TreeMapに保存したデータを取得する場合は、getメソッドを使用します。これは指定したキーに対応する値を取得するメソッドです。

Map構造では、キーを指定して値を取り出すのが基本になります。


import java.util.TreeMap;

public class TreeMapGetExample {
    public static void main(String[] args) {

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

        map.put(100, "Tokyo");
        map.put(200, "Osaka");
        map.put(300, "Nagoya");

        String city = map.get(200);

        System.out.println(city);
    }
}

Osaka

このようにキーを指定することで、対応するデータを簡単に取得できます。JavaのMapは検索処理がとても高速なので、大量のデータを扱うプログラムでもよく利用されます。

5. TreeMapのキー一覧を取得する

5. TreeMapのキー一覧を取得する
5. TreeMapのキー一覧を取得する

TreeMapでは、すべてのキーを取得することもできます。これにはkeySetメソッドを使用します。

キー一覧を取得すれば、ループ処理を使ってすべてのデータを順番に処理することができます。TreeMapの場合はキーがソートされているため、整列された状態でループできます。


import java.util.TreeMap;

public class TreeMapKeySetExample {
    public static void main(String[] args) {

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

        map.put(3, "Cat");
        map.put(1, "Dog");
        map.put(2, "Bird");

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

1 : Dog
2 : Bird
3 : Cat

このようにキーの昇順で処理されるため、順番が重要なデータ管理にも向いています。Javaでデータを並び替えながら処理したい場合にはTreeMapがとても便利です。

6. TreeMapで最初と最後のキーを取得する

6. TreeMapで最初と最後のキーを取得する
6. TreeMapで最初と最後のキーを取得する

TreeMapには、ソートされたデータを活用する便利なメソッドも用意されています。例えば、最小キーや最大キーを取得することができます。

代表的なメソッドは次の通りです。

  • firstKey 最小キーを取得
  • lastKey 最大キーを取得

import java.util.TreeMap;

public class TreeMapFirstLastExample {
    public static void main(String[] args) {

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

        map.put(50, "A");
        map.put(10, "B");
        map.put(30, "C");

        System.out.println("最小キー: " + map.firstKey());
        System.out.println("最大キー: " + map.lastKey());
    }
}

最小キー: 10
最大キー: 50

このような機能はランキングデータやスコア管理などでよく利用されます。JavaのTreeMapは単なるMapではなく、ソート機能を持った強力なデータ構造といえます。

7. TreeMapとHashMapの違い

7. TreeMapとHashMapの違い
7. TreeMapとHashMapの違い

JavaのMapにはいくつか種類がありますが、その中でもよく比較されるのがTreeMapとHashMapです。

それぞれの特徴を理解しておくと、用途に応じて適切なMapを選択できるようになります。

Mapの種類 特徴
HashMap 順序は保証されないが高速
TreeMap キーが自動的にソートされる

順序が必要ない場合はHashMap、キーの並び順が重要な場合はTreeMapを使うというのが基本的な使い分けです。

例えば、ランキング表示、辞書データ、日付順データなどではTreeMapがとても役立ちます。Javaのコレクションフレームワークでは、こうした複数のMapを目的に応じて使い分けることが重要です。

まとめ

まとめ
まとめ

JavaのTreeMapはJavaコレクションフレームワークの中でも特に順序付きデータ管理を行いたいときに役立つMapクラスです。通常のMap構造ではキーと値の組み合わせを保存できますがデータの並び順が保証されないことがあります。しかしTreeMapを利用するとキーの自然順序によって自動的に並び替えが行われるためデータを整理された状態で管理することができます。例えば番号順アルファベット順日付順など順番が重要なデータを扱うプログラムでは非常に便利です。

Javaプログラミングを学び始めた初心者にとってMapの理解はとても重要です。配列やリストとは違いMapはキーと値の組み合わせでデータを保存する構造であり検索処理を効率よく行うことができます。特にTreeMapはキーを自動でソートする機能を持っているためデータ管理をシンプルに保つことができます。例えば成績管理ランキング表示辞書データ管理ログの時系列管理など多くの場面で活用できます。

TreeMapの基本的な使い方としてはまずTreeMapクラスを作成しputメソッドを使ってキーと値を追加します。TreeMapでは追加した順番ではなくキーの昇順で並び替えられる点が重要な特徴です。HashMapと比較すると処理速度は多少変わる場合がありますがその代わりに常に整列されたデータ構造を維持できるという利点があります。そのため順序を重視するプログラムではTreeMapが選ばれることが多いです。

またTreeMapには便利なメソッドが多数用意されています。getメソッドを使えば指定したキーから値を取得することができます。keySetメソッドを使うとすべてのキーを取り出すことができループ処理を使って順番にデータを処理することが可能になります。さらにfirstKeyメソッドやlastKeyメソッドを使うことで最小キーや最大キーを簡単に取得できます。このような機能はランキング処理やスコア管理などでよく利用されます。

Javaのプログラムではデータ構造の選択がとても重要です。単純にデータを保存するだけならHashMapでも十分ですが並び順を維持したい場合はTreeMapを選ぶことでプログラムの処理を簡潔に保つことができます。特に検索処理と並び替え処理を同時に行いたい場合にはTreeMapの利用価値は高くなります。Javaのコレクションフレームワークを理解することでより実用的なプログラムを書くことができるようになります。

TreeMapの理解を深めるサンプルプログラム

次のサンプルプログラムではTreeMapを利用して商品番号と商品名を管理する例を紹介します。このプログラムでは複数のデータを登録して自動的にキー順で表示する仕組みを確認できます。TreeMapの動作を実際に確認することでJavaのMap構造の理解がより深まります。


import java.util.TreeMap;

public class TreeMapSummaryExample {

    public static void main(String[] args) {

        TreeMap<Integer, String> products = new TreeMap<>();

        products.put(300, "Keyboard");
        products.put(100, "Mouse");
        products.put(200, "Monitor");
        products.put(400, "Speaker");

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

        System.out.println("最小キー " + products.firstKey());
        System.out.println("最大キー " + products.lastKey());
    }
}

100 : Mouse
200 : Monitor
300 : Keyboard
400 : Speaker
最小キー 100
最大キー 400

このようにTreeMapを使うとデータが自動的に並び替えられて表示されます。入力した順番ではなくキーの昇順で整理されるため順序付きデータの管理がとても簡単になります。Java初心者はまず基本的なMap操作を理解しそのあとTreeMapのような便利なクラスを活用できるようになるとプログラムの設計力が大きく向上します。

Javaプログラミングの学習では配列リストセットマップなどのコレクションを理解することが非常に重要です。TreeMapはその中でもデータを整理して扱うための強力な仕組みを提供してくれます。キーを自動で並び替えるという特徴を理解しておくことでランキング管理辞書検索ログ管理などさまざまなシステム開発に応用することができます。Mapの理解が深まるとJavaの実践的なプログラムを作成する力が身につきます。

先生と生徒の振り返り会話

生徒

今日の内容でJavaのTreeMapがどんなクラスなのかよく分かりました Mapの中でもキーが自動で並び替えられるというのはとても便利ですね

先生

そうですね TreeMapはキーの自然順序でデータを管理するMapクラスです そのため順序付きデータ管理を行うときによく利用されます

生徒

putメソッドでデータを追加してgetメソッドで取得するという基本操作も理解できました keySetを使うと順番にデータを処理できるのも便利ですね

先生

その通りです さらにfirstKeyやlastKeyを使うと最小キーや最大キーも取得できます ランキングやスコア管理などでよく使われます

生徒

HashMapとの違いも理解できました 順序が不要な場合はHashMap 並び順が必要な場合はTreeMapを使うと良いのですね

先生

その理解で正しいです Javaでは目的に応じてコレクションを使い分けることが重要です TreeMapを理解するとデータ管理の幅が大きく広がります これからもコレクションフレームワークを学んでいきましょう

Javaのマップの一覧へ
新着記事
Flutter
FlutterでWebアプリをビルドする方法と注意点
FlutterでWebアプリをビルドする方法と注意点を徹底解説【初心者向け】
Flutter
Flutter Web開発の始め方!環境構築と基本の流れ
Flutter Web開発の始め方を完全ガイド!初心者でもわかる環境構築と基本の流れ
Flutter
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Flutter
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
人気記事
Flutter
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Flutterの開発に必要なもの!パソコン・ツール・OSなど準備まとめ
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク