Java における hashmap と map の違い
- 
          
            Java の 
Mapインターフェース - 
          
            Java の 
HashMapクラス - 
          
            Java でオブジェクトを保持するために 
Map参照を使用する - 
          
            Java でオブジェクトを保持するために 
Mapリファレンスを使用する 
このチュートリアルでは、Java の Map と HashMap の主な違いを紹介します。
Java では、Map はキーと値のペアでデータを格納するために使用されるインターフェースですが、HashMap は Map インターフェースの実装クラスです。Java には、データをキーと値のペアに格納するための Map インターフェイスを実装するいくつかのクラス(TreeHashMap、LinkedHashMap)があります。いくつかの例を見てみましょう。
Java の Map インターフェース
Map インターフェイスだけを使用してデータを保持することはできませんが、その実装クラスのオブジェクトを作成してから、Map 参照を使用してオブジェクトを保持することはできます。ここでは、HashMap クラスを使用してデータを格納し、Map インターフェイスを使用してこのクラスの参照を保持します。以下の例を参照してください。
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}
出力:
{One=1, Two=2, Three=3}
Java の HashMap クラス
HashMap は Map インターフェースの実装クラスです。したがって、これを使用して、キーと値のペアのコレクションを作成できます。以下の例を参照してください。
import java.util.HashMap;
public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
  }
}
出力:
{One=1, Two=2, Three=3}
Java でオブジェクトを保持するために Map 参照を使用する
Map はインターフェースであるため、HashMap、TreeMap などの実装クラスの参照を保持するために使用できます。TreeMap または HashMap オブジェクトを Map インターフェースに保持できます。以下の例を参照してください。
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
  public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
    System.out.println(map);
    Map<String, Integer> tmap = new TreeMap<>(map);
    System.out.println(tmap);
  }
}
出力:
{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}
Java でオブジェクトを保持するために Map リファレンスを使用する
これは、実装クラスを操作するときに Map リファレンスを使用する重要な例です。Map オブジェクトを引数として取るメソッドがあります。したがって、呼び出し時に、HashMap や HashTable などの任意のクラスのオブジェクトを渡すことができます。以下の例を参照してください。
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
  static void printMap(Map<String, Integer> map) {
    for (String key : map.keySet()) {
      System.out.println(key + ":" + map.get(key));
    }
  }
  public static void main(String[] args) {
    HashMap<String, Integer> hashmap = new HashMap<>();
    hashmap.put("One", 1);
    hashmap.put("Two", 2);
    hashmap.put("Three", 3);
    printMap(hashmap);
    TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
    printMap(tmap);
    LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
    printMap(lmap);
  }
}
以下のようにコードを実行します。
Java SimpleTesting 10 20
出力:
10
20
関連記事 - Java Map
- Java のインクリメント マップ
 - Java でマップ値をリストに変換する
 - Java でのマップフィルタリング
 - Java でリストをマップに変換する
 - Java で順序付きマップを作成する
 - Java でマップを作成する