メインコンテンツにスキップ
モジュール 6 · レッスン 1 / 2コース内の 11/14~15 min
モジュールのレッスン (1/2)

セットとマップ

Java Collections Framework は、ArrayList クラス (要素の順序付きリストを表す) 以外にも、Set (一意の要素用) と Map (キーと値の関連付け用) という 2 つの基本的なインターフェイスを提供します。

セット: ユニークな要素のコレクション

Set は、重複した要素を含めることができない コレクションです。最も一般的な実装は HashSet で、内部的にはハッシュ テーブルに基づいており、挿入、削除、および存在確認操作の優れたパフォーマンスを保証します。

Java
import java.util.HashSet;
import java.util.Set;

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // This insertion will be ignored since "Alice" is already present

System.out.println(uniqueNames.size()); // Prints 2

マップ: キーと値の関連付け

Map は、一意の キーを 値にマップします。重複したキーを含めることはできません。各キーは最大 1 つの値に関連付けられます。その標準実装は HashMap です。

Java
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> ageMap = new HashMap<>();
// Insert or update key-value pairs
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);

// Retrieve value by key
int aliceAge = ageMap.get("Alice"); // Returns 25

// Verify if a key or value exists
boolean hasBob = ageMap.containsKey("Bob"); // Returns true

マップの反復処理

キーと値のペアを反復するには、マップによって提供されるエントリのセット (entrySet()) に対して for-each ループを使用できます。

Java
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
    System.out.println(entry.getKey() + " is " + entry.getValue() + " years old.");
}

自分で試してみてください

運動#java.m6.l1.e1
試行回数: 0読み込み中…

items という名前の文字列の HashSet を宣言してコードを完成させます。要素「apple」、「banana」、「apple」を再度追加し、System.out.println を使用してセットのサイズを出力します。

エディターを読み込み中…
ヒントを表示

`Set` では重複は許可されず、`items.size()` は挿入された一意の要素の実際の数を返すことに注意してください。

3 回の試行後に解決策が利用可能になります

運動#java.m6.l1.e2
試行回数: 0読み込み中…

文字列キーと整数値を使用して、ages という名前の HashMap を宣言してコードを完成させます。キー「Alice」を 25 に、キー「Bob」を 30 に関連付け、ボブの年齢を取得して出力します。

エディターを読み込み中…
ヒントを表示

ペアを挿入するには「put」メソッドを使用し、キーに基づいて値を取得するには「get」メソッドを使用します。

3 回の試行後に解決策が利用可能になります

運動#java.m6.l1.e3
試行回数: 0読み込み中…

国の地図にキー「FR」が含まれているかどうかを確認してコードを完成し、ブール値の結果を出力します。

エディターを読み込み中…
ヒントを表示

`countries` オブジェクトの `containsKey` メソッドを使用して、必要なキーの存在を確認します。

3 回の試行後に解決策が利用可能になります