記事ディレクトリ
序文
Java のコレクション フレームワークでは、Map
インターフェイスを使用してキーと値のペアを保存し、キーに基づいて検索および操作するためのデータ構造を提供します。Map
インターフェイスの実装クラスは、追加、削除、更新、検索など、キーと値のペアを操作するための豊富なメソッドを提供します。この記事では、Java のインターフェイスとその一般的な実装クラス ( 、 、および をMap
含む) を詳しく紹介し、いくつかのサンプル コードを提供します。HashMap
TreeMap
LinkedHashMap
1. マップの概要
Map
インターフェイスはキーと値のペアのコレクションであり、Collection
インターフェイス内のsize()
および およびその他isEmpty()
のメソッドを継承します。また、キーに基づいて値を検索するためのメソッドと、キーと値を追加、削除、更新するためのメソッドも提供します。ペア。Java では、Map
インターフェイスにはいくつかの共通の実装クラスがあり、それぞれが異なるパフォーマンスと用途を持っています。
HashMap
: ハッシュ テーブルの実装に基づいており、高速な検索と挿入操作を備えており、キーと値のペアを迅速に見つける必要があるシナリオに適しています。TreeMap
: 赤黒ツリーの実装に基づいて、キーを並べ替えることができ、キーを並べ替える必要があるシナリオに適した一連の並べ替え関連メソッドが提供されます。LinkedHashMap
: ハッシュ テーブルとリンク リストの実装に基づいて、キーと値のペアの挿入順序が維持され、挿入順序を維持する必要があるシナリオに適しています。
2. ハッシュマップ
HashMap
インターフェースの共通実装クラスでありMap
、ハッシュテーブルに基づいて実装されており、高速な検索・挿入操作を実現します。一般的に使用されるいくつかの方法を次に示しますHashMap
。
put(K key, V value)
: 指定されたキーと値のペアを に追加しますHashMap
。remove(Object key)
: 指定されたキーのキーと値のペアをHashMap
そこから。get(Object key)
: 指定されたキーに対応する値を返します。containsKey(Object key)
:HashMap
指定されたキーが含まれているかどうかを確認します。containsValue(Object value)
:HashMap
指定した値が含まれているかどうかを確認します。size()
:HashMap
キーと値のペアの数を返します。
使用されるサンプルコードは次のとおりですHashMap
。
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
boolean containsCharlie = scores.containsKey("Charlie");
System.out.println("Contains Charlie: " + containsCharlie);
}
}
上の例では、HashMap
インスタンスを作成し、いくつかの生徒のスコアを追加しました。次に、HashMap
そこから、キーによって対応する値を取得します。最後に、HashMap
特定のキーが に含まれているかどうかを確認します。
3. ツリーマップ
TreeMap
これはMap
インターフェースのもう 1 つの一般的な実装クラスであり、赤黒ツリーに基づいて実装され、キーをソートでき、ソートに関連する一連のメソッドを提供します。一般的に使用されるいくつかの方法を次に示しますTreeMap
。
put(K key, V value)
: 指定されたキーと値のペアを に追加しますTreeMap
。remove(Object key)
: 指定されたキーのキーと値のペアをTreeMap
そこから。get(Object key)
: 指定されたキーに対応する値を返します。containsKey(Object key)
:TreeMap
指定されたキーが含まれているかどうかを確認します。size()
:TreeMap
キーと値のペアの数を返します。firstKey()
:TreeMap
文字列内の最初のキーを返します。lastKey()
:TreeMap
戻り値の最後のキー。
使用されるサンプルコードは次のとおりですTreeMap
。
import java.util.TreeMap;
import java.util.Map;
public class TreeMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new TreeMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
String firstKey = scores.firstKey();
String lastKey = scores.lastKey();
System.out.println("First key: " + firstKey);
System.out.println("Last key: " + lastKey);
}
}
上の例では、TreeMap
インスタンスを作成し、いくつかの生徒のスコアを追加しました。TreeMap
赤黒ツリーの実装に基づいているため、キーの順序はキーの自然な順序に従ってソートされます。次に、TreeMap
そこから、キーによって対応する値を取得します。最後に、firstKey()
andメソッドを使用して最初と最後のキーlastKey()
を取得します。TreeMap
4.リンクされたハッシュマップ
LinkedHashMap
Map
インターフェイスの別の実装クラスであり、ハッシュ テーブルとリンク リストの実装に基づいており、キーと値のペアの挿入順序を維持します。一般的に使用されるいくつかの方法を次に示しますLinkedHashMap
。
put(K key, V value)
: 指定されたキーと値のペアを に追加しますLinkedHashMap
。remove(Object key)
: 指定されたキーのキーと値のペアをLinkedHashMap
そこから。get(Object key)
: 指定されたキーに対応する値を返します。containsKey(Object key)
:LinkedHashMap
指定されたキーが含まれているかどうかを確認します。size()
:LinkedHashMap
キーと値のペアの数を返します。
使用されるサンプルコードは次のとおりですLinkedHashMap
。
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedHashMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new LinkedHashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
boolean containsCharlie = scores.containsKey("Charlie");
System.out.println("Contains Charlie: " + containsCharlie);
}
}
上の例では、LinkedHashMap
インスタンスを作成し、いくつかの生徒のスコアを追加しました。ハッシュ テーブルとリンク リストに基づいて実装されるためLinkedHashMap
、キーと値のペアの挿入順序が維持されます。次に、LinkedHashMap
そこから、キーによって対応する値を取得します。最後に、LinkedHashMap
特定のキーが に含まれているかどうかを確認します。
要約する
Map
この記事では、 Java のインターフェイスとその一般的な実装クラス、HashMap
およびTreeMap
について詳しく説明しますLinkedHashMap
。それらの特性と使用法を理解することで、実際のニーズに応じてキーと値のペアを保存および操作するための適切な実装クラスを選択できますMap
。
HashMap
これは、キーと値のペアを迅速に検索して挿入する必要があるシナリオ、TreeMap
キーを並べ替える必要があるシナリオ、およびLinkedHashMap
挿入順序を維持する必要があるシナリオに適しています。
この記事が Java インターフェイスの理解と使用に役立つことを願っていますMap
。
参考文献:
添付: サンプルコード
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
boolean containsCharlie = scores.containsKey("Charlie");
System.out.println("Contains Charlie: " + containsCharlie);
}
}
import java.util.TreeMap;
import java.util.Map;
public class TreeMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new TreeMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
String firstKey = scores.firstKey();
String lastKey = scores.lastKey();
System.out.println("First key: " + firstKey);
System.out.println("Last key: " + lastKey);
}
}
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedHashMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new LinkedHashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 95);
System.out.println("Scores: " + scores);
scores.remove("Bob");
System.out.println("Scores after removal: " + scores);
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore);
boolean containsCharlie = scores.containsKey("Charlie");
System.out.println("Contains Charlie: " + containsCharlie);
}
}