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());

さらに、返されたSetMapのキーが含まれていることがわかります。

assertTrue(actualValues.contains("one"));
assertTrue(actualValues.contains("two"));

4. entrySet()メソッド

entrySet()メソッドは、Key-Valueマッピングのセットを返します。 このメソッドはパラメーターを受け取らず、戻り値のタイプがあります設定 Map.Entry。 

メソッドentrySet() Map:に適用してみましょう。

Set<Map.Entry<String, Integer>> actualValues = map.entrySet();

ご覧のとおり、 actualValues設定 Map.Entry オブジェクト

Map.Entry は、キーと値の両方を保持する静的インターフェイスです。 内部的には、AbstractMap.SimpleEntryAbstractMap.SimpleImmutableEntryの2つの実装があります。

前と同じように、返されたセットのサイズが2であることを確認しましょう。

assertEquals(2, actualValues.size());

さらに、返されたSetMapのキー値エントリが含まれていることがわかります。

assertTrue(actualValues.contains(new SimpleEntry<>("one", 1)));
assertTrue(actualValues.contains(new SimpleEntry<>("two", 2)));

ここでは、テスト用にAbstractMap.SimpleEntryインターフェイスMap.Entryの実装を選択しました。

5. values()メソッド

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から入手できます。