この記事では、3 つの方法について説明します。 keySet(), values()、 と entrySet()Map Javaのインターフェース。これらのメソッドは、キーのセット、値のコレクション、またはキーと値のマッピングのセットを Map、 それぞれ。

1. 概要 keySet(), values()、 と entrySet() メソッド

The java.util.Map インターフェイスは3つの方法を提供します keySet(), values()、 と entrySet()を使用すると、マップのコンテンツをそれぞれキーのセット、値のコレクション、またはキーと値のマッピングのセットとして表示できます。の Map これらのメソッドによって返されたコレクションをバックアップするため、 Map コレクションに反映され、その逆も同様です。

これらのメソッドの構文と戻り値の型を見てみましょう。

  • The keySet() メソッドは Set に含まれるキーのビュー Map。このメソッドはパラメータをとらず、戻り値の型を持ちます。 Set<K>、 どこ K のキーのタイプです。 Map.
  • The values() メソッドは Collection に含まれる値のビュー Map。このメソッドはパラメータをとらず、戻り値の型を持ちます。 Collection<V>、 どこ V の値のタイプです。 Map.
  • The entrySet() メソッドは Set に含まれるキーと値のマッピングのビュー Map。このメソッドはパラメータをとらず、戻り値の型を持ちます。 Set<Map.Entry<K,V>>、 どこ K はキーの種類であり、 V の値のタイプです。 Map. Map.Entry キーと値のペアを表すインターフェイスです。

HashMap でこれらのメソッドを作成して使用する方法の例を見てみましょう。

ダウンロード  コードを実行する

2. 両者の違い keySet(), values()、 と entrySet() メソッド

の機能 keySet(), values()、 と entrySet() 方法は似ています。それらはすべて、ある側面のコレクション ビューを返します。 Map。ただし、これらには、理解する必要があるいくつかの違いとトレードオフもあります。

  • The keySet() メソッドは、その中に存在するすべてのキーの Set ビューを返します。 Mapつまり、キーのセットを返します。の values() メソッドは、内に存在するすべての値のコレクション ビューを返します。 Mapつまり、値のコレクションを返します。の entrySet() メソッドは、内に存在するすべてのマッピングの Set ビューを返します。 Mapつまり、キーと値のペアのセットを返します。
  • The keySet() メソッドを使用して マップ内のすべてのキーを反復処理します。 各キーに基づいてアクションを実行します。の values() メソッドを使用して、内のすべての値を反復処理できます。 Map それぞれの値に基づいてアクションを実行します。の entrySet() メソッドを使用して マップ内のすべてのエントリを反復処理します。 各キーと値のペアに基づいてアクションを実行します。
  • The keySet() このメソッドでは、セット内の重複キーは許可されません。 Map 重複キーは許可されません。の values() このメソッドでは、コレクション内の重複値が許可されます。 Map 重複した値を許可します。の entrySet() このメソッドでは、セット内の重複エントリは許可されません。 Map 重複したエントリは許可されません。

3.使用方法 keySet(), values()、 と entrySet() 正しいメソッド

これらのメソッドを正しく使用する方法に関する一般的な推奨事項をいくつか示します。

  • 使用する keySet() のキーにアクセスまたは変更するだけでよい場合は、このメソッドを使用します。 Map値やエントリは気にしません。たとえば、次のように使用できます。 keySet() キーが存在するかどうかを確認するメソッド Map、からキーを削除するには、 Map、または内のすべてのキーを反復処理します。 Map.
  • 使用する values() の値にアクセスまたは変更するだけでよい場合は、メソッドを使用します。 Mapキーやエントリは気にしません。たとえば、次のように使用できます。 values() 値が存在するかどうかを確認するメソッド Mapから値を削除するには、 Map、または内のすべての値を反復処理します。 Map.
  • 使用する entrySet() のキーと値の両方にアクセスまたは変更する必要がある場合は、メソッドを使用します。 Map、または、エントリにアクセスまたは変更する必要がある場合 Map。たとえば、次のように使用できます。 entrySet() エントリが存在するかどうかを確認するメソッド Mapからエントリを削除するには、 Map、または内のすべてのエントリを反復処理します。 Map.

以上がすべてです keySet(), values()entrySet() Javaのメソッド。