Menu
Coddy logo textTech

entrySet() を使用したイテレーション

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 18/59。

entrySet()を使用して反復処理を行うことは、HashMapからMap.Entryオブジェクトのセットを取得することを意味します。各Map.Entryはキーとそれに対応する値の両方を提供するため、keySet()で必要となる余分なルックアップを回避でき、より効率的です。

HashMapを作成します:

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

entrySet() を使用して反復処理します:

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}
// Product: Laptop, Quantity: 10
// Product: Mouse, Quantity: 50
// Product: Keyboard, Quantity: 30
challenge icon

チャレンジ

簡単

Scannerを介して読み取られたJSON文字列から、HashMap(商品名をキー、数量を値とする)を受け取る<strong>printInventoryEntrySet</strong>という名前のメソッドを作成してください。このメソッドは、entrySet()メソッドを使用してHashMapを反復処理し、各キーと値のペアを次の形式で出力する必要があります:

Product: <product name>, Quantity: <quantity>

チートシート

entrySet() を使用して HashMap を反復処理し、キーと値の両方に効率的にアクセスします。

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}

Map.Entry オブジェクトは以下を提供します。

  • entry.getKey() - キーを返します
  • entry.getValue() - 値を返します

このアプローチは、余分なルックアップを回避できるため、keySet() を使用するよりも効率的です。

自分で試してみよう

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static void printInventoryEntrySet(HashMap<String, Integer> inventory) {
        // entrySet()を使用して、ここにコードを記述してください
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String inventoryString = scanner.nextLine();

        // JSON文字列をHashMap<String, Integer>に変換します
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> inventory = new Gson().fromJson(inventoryString, mapType);

        printInventoryEntrySet(inventory);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン