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 でマップを作成する