プログラミング

JavaのMapの使い方

Javaにおける「Map」は、キーと値のペアを格納するためのデータ構造です。Mapは非常に強力であり、特定のキーに関連付けられた値を迅速に検索するために使用されます。この記事では、JavaにおけるMapの基本的な使い方、主要な実装クラス、およびよく使われるメソッドについて、詳細に解説します。

1. Mapの基本概念

Mapは、キーと値のペアを格納するインターフェースです。キーは一意でなければならず、各キーは1つの値に関連付けられます。Mapには次の基本的な特徴があります:

  • キーは一意: 同じキーに複数の値を格納することはできません。
  • 順序の保持: 一部のMap実装は順序を保持しますが、他の実装は順序を保持しません。
  • null値: 一部のMap実装はnullキーとnull値をサポートしますが、すべての実装がサポートしているわけではありません。

2. Mapの主要な実装

Javaの標準ライブラリでは、Mapインターフェースのいくつかの実装が提供されています。主なものは以下の通りです。

2.1 HashMap

HashMapは、最も一般的に使用されるMapの実装です。内部でハッシュテーブルを使用しており、キーと値のペアを格納します。検索、挿入、削除の操作が非常に高速です(平均的にO(1)の時間計算量)。ただし、順序を保証しません。

java
Map map = new HashMap<>(); map.put("A", "Apple"); map.put("B", "Banana"); System.out.println(map.get("A")); // 出力: Apple

2.2 TreeMap

TreeMapは、キーが自然順序または指定されたコンパレータに従って順序付けられるMapです。内部的には赤黒木を使用しており、キーがソートされて格納されます。そのため、順序付きでデータを管理する必要がある場合に有効です。

java
Map map = new TreeMap<>(); map.put(3, "Three"); map.put(1, "One"); map.put(2, "Two"); System.out.println(map); // 出力: {1=One, 2=Two, 3=Three}

2.3 LinkedHashMap

LinkedHashMapは、HashMapと同様にハッシュテーブルを使用しますが、挿入順序を保持します。つまり、キーを追加した順番にエントリを繰り返します。これを使用すると、順序が重要な場合に便利です。

java
Map map = new LinkedHashMap<>(); map.put("A", "Apple"); map.put("B", "Banana"); map.put("C", "Cherry"); System.out.println(map); // 出力: {A=Apple, B=Banana, C=Cherry}

2.4 WeakHashMap

WeakHashMapは、キーとしてWeakReferenceを使用するMapです。これはガベージコレクション(GC)がキーを回収可能にした場合、そのエントリを自動的に削除する特性があります。キャッシュなどの一時的なデータを管理する際に有用です。

3. Mapの主要なメソッド

Mapインターフェースには、キーと値を操作するための多くのメソッドが定義されています。以下はその一部です。

3.1 put(K key, V value)

指定されたキーに対する値をMapに追加します。キーが既に存在する場合は、その値を新しい値に置き換

Back to top button