Java - 문제 미리보기
문제 2379
hard
다음 코드에서 HashMap의 모든 키와 값을 출력하는 가장 올바른 방법은?
```java
HashMap scores = new HashMap<>();
scores.put("Math", 95);
scores.put("English", 87);
scores.put("Science", 92);
```
정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.