Java - 문제 미리보기

문제 2379

hard
다음 코드에서 HashMap의 모든 키와 값을 출력하는 가장 올바른 방법은? ```java HashMap scores = new HashMap<>(); scores.put("Math", 95); scores.put("English", 87); scores.put("Science", 92); ```
A. ```java for (int i = 0; i < scores.size(); i++) { System.out.println(scores.get(i)); } ```
B. ```java for (String subject : scores.keySet()) { System.out.println("Subject: " + subject + ", Score: " + scores.get(subject)); } ```
C. ```java for (Integer score : scores.values()) { System.out.println(score); } ```
D. ```java scores.forEach(System.out::println); ```

정답: B

HashMap에서 모든 키와 값을 함께 출력하려면 `keySet()`을 사용해 키를 순회하고, 각 키에 대해 `get()`으로 값을 가져와야 합니다. 각 선택지 분석: 1번 - 틀림: ```java // HashMap은 인덱스 기반 접근이 불가능 for (int i = 0; i < scores.size(); i++) { System.out.println(scores.get(i)); // 컴파일 에러! } ``` ⦁ HashMap은 List와 달리 인덱스 접근을 지원하지 않음 ⦁ `get(int index)` 메서드가 존재하지 않음 2번 - 정답: ```java // keySet()으로 모든 키를 순회하며 키-값 쌍 출력 for (String subject : scores.keySet()) { System.out.println("Subject: " + subject + ", Score: " + scores.get(subject)); } ``` ⦁ `keySet()`: 모든 키를 Set으로 반환 ⦁ 각 키에 대해 `get(key)`로 값 조회 ⦁ 키와 값을 모두 출력 가능 3번 - 부분적: ```java // values()는 값만 출력 (키 정보 없음) for (Integer score : scores.values()) { System.out.println(score); // 95, 87, 92만 출력 } ``` ⦁ 값만 출력되고 키 정보는 알 수 없음 ⦁ 문제에서 요구하는 "키와 값 모두" 출력이 아님 4번 - 틀림: ```java // forEach는 Map.Entry를 출력하지만 형식이 보기 좋지 않음 scores.forEach(System.out::println); // 컴파일 에러 또는 형식 문제 ```

💡 학습 팁

이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.