Java SortedMapインターフェース:概要、メソッド、TreeMap実装
Java SortedMapインターフェース
このチュートリアルでは、JavaのSortedMapインターフェース、その主要メソッド、TreeMapクラスでの使用方法を探ります。
コレクションフレームワークの一部であるJavaのSortedMapインターフェースは、マップのキーがソート順で格納されることを保証します。基本Mapインターフェースを拡張します。

SortedMapを実装するクラス
SortedMapはインターフェースであるため、直接インスタンス化できません。JDKが提供する具体的実装はTreeMapクラスで、デフォルトでキーの自然昇順でエントリを維持します。

SortedMapの使い方
SortedMapを扱うには、まずインターフェースをインポートします:
import java.util.SortedMap;
import java.util.TreeMap;
次にTreeMapを使用してインスタンスを作成します:
SortedMap<Key, Value> numbers = new TreeMap<>();
この例では、numbersはキーを自然昇順で格納します。異なる順序が必要な場合は、カスタムComparatorを指定できます。
定義:
- Key - 値にマッピングされる一意の識別子
- Value - キーに関連付けられるデータ
引数なしコンストラクタを使用すると、キー型の自然順序付けでマップがソートされます。
SortedMapの主要メソッド
Mapから継承されるすべてのメソッドに加え、SortedMapは以下の操作を追加します:
- comparator() - キー順序付けに使用される
Comparatorを返す。自然順序の場合はnull - firstKey() - マップ内の最小キーを取得
- lastKey() - マップ内の最大キーを取得
- headMap(K toKey) -
toKeyより厳密に小さいキーを持つマップのビューを返す - tailMap(K fromKey) -
fromKey以上のキーを持つマップのビューを返す - subMap(K fromKey, K toKey) -
fromKey(含む)からtoKey(含まない)の範囲のキーを持つマップのビューを返す
詳細についてはJava SortedMapドキュメントを参照してください。
TreeMap:SortedMapの具体的実装
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
// TreeMapを使用したSortedMap作成
SortedMap<String, Integer> numbers = new TreeMap<>();
// マップに要素を挿入
numbers.put("Two", 2);
numbers.put("One", 1);
System.out.println("SortedMap: " + numbers);
// 最初と最後のキーを取得
System.out.println("最初のキー: " + numbers.firstKey());
System.out.println("最後のキー: " + numbers.lastKey());
// キーでエントリを削除
int removed = numbers.remove("One");
System.out.println("削除された値: " + removed);
}
}
出力
SortedMap: {One=1, Two=2}
最初のキー: One
最後のキー: Two
削除された値: 1
この例は、SortedMapがTreeMapとともに使用される際の振る舞いを示します。TreeMapの詳細についてはJava TreeMapドキュメントを参照してください。
Java
- C#インターフェイスをマスターする:定義、実装、実践的なユースケース
- Java演算子をマスター:種類、構文、実践例
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Java NavigableSetインターフェースをマスター:ナビゲーション、ソート、実践例
- Javaラムダ式完全ガイド:基礎からStream APIまで
- Java インターフェース vs 抽象クラス:適切な抽象化の選び方
- Javaインターフェース完全ガイド: 定義・実装・多重継承・タグインターフェース
- Java 9コレクションファクトリメソッド:不変List、Set、Mapを簡潔に作成
- Java 9プライベートインターフェースメソッド:カプセル化とコード再利用を強化