Menu
Coddy logo textTech

entrySet()으로 반복하기

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 18번째.

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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨