Javaマップ–keySet()と。entrySet()と。values()メソッド
1. 概要
このチュートリアルでは、 Map インターフェイスの3つのメソッドkeySet()、 entrySet()、 values()について説明します。 Javaで。 これらのメソッドは、それぞれ、キーのセット、キーと値のマッピングのセット、および値のコレクションを取得するために使用されます。
2. マップの初期化
これらのメソッドは、 HashMap、TreeMap、、 LinkedHashMap、などの Map インターフェースを実装する任意のクラスで使用できますが、HashMapを使用します。 ] ここ。
キーがString型で、値が Integer型のHashMapを作成して初期化します。
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
3. keySet()メソッド
keySet()メソッドは、Mapに含まれるキーのSetを返します。
メソッドkeySet()をマップに適用し、Set変数actualValuesに格納してみましょう。
Set<String> actualValues = map.keySet();
ここで、返されたセットのサイズが2であることを確認しましょう。
assertEquals(2, actualValues.size());
さらに、返されたSetにMapのキーが含まれていることがわかります。
assertTrue(actualValues.contains("one"));
assertTrue(actualValues.contains("two"));
4. entrySet()メソッド
entrySet()メソッドは、Key-Valueマッピングのセットを返します。 このメソッドはパラメーターを受け取らず、戻り値のタイプがあります設定の
メソッドentrySet()を Map:に適用してみましょう。
Set<Map.Entry<String, Integer>> actualValues = map.entrySet();
ご覧のとおり、 actualValues は設定の Map.Entry オブジェクト
Map.Entry は、キーと値の両方を保持する静的インターフェイスです。 内部的には、AbstractMap.SimpleEntryとAbstractMap.SimpleImmutableEntryの2つの実装があります。
前と同じように、返されたセットのサイズが2であることを確認しましょう。
assertEquals(2, actualValues.size());
さらに、返されたSetにMapのキー値エントリが含まれていることがわかります。
assertTrue(actualValues.contains(new SimpleEntry<>("one", 1)));
assertTrue(actualValues.contains(new SimpleEntry<>("two", 2)));
ここでは、テスト用にAbstractMap.SimpleEntryインターフェイスMap.Entryの実装を選択しました。
5. values()メソッド
メソッドvalues()をマップに適用し、コレクション変数 actualValues:に格納してみましょう。
Collection<Integer> actualValues = map.values();
次に、返されたコレクションのサイズを確認しましょう:
assertEquals(2, actualValues.size());
さらに、返されたSetにはMapの値が含まれていることがわかります。
assertTrue(actualValues.contains(1));
assertTrue(actualValues.contains(2));
6. 結論
この記事では、 MapインターフェースのkeySet()、 entrySet()、、および values()メソッドについて説明しました。 。
いつものように、完全なソースコードはGitHubでから入手できます。