Java - 문제 미리보기
문제 2377
easy
다음 코드의 실행 결과는?
```java
HashMap countries = new HashMap<>();
countries.put("Norway", "Oslo");
countries.put("Sweden", "Stockholm");
countries.put("Norway", "Bergen");
countries.put("Denmark", "Copenhagen");
System.out.println(countries.size());
```
정답: B
HashMap에서 동일한 키를 다시 추가하면 기존 값이 새로운 값으로 덮어써집니다.
코드 실행 과정:
1. `"Norway" → "Oslo"` 추가 (크기: 1)
2. `"Sweden" → "Stockholm"` 추가 (크기: 2)
3. `"Norway" → "Bergen"` 추가 → 기존 "Oslo"를 "Bergen"으로 덮어씀 (크기: 여전히 2)
4. `"Denmark" → "Copenhagen"` 추가 (크기: 3)
HashMap의 키 고유성 규칙:
⦁ 키는 고유해야 함: 중복된 키는 허용되지 않음
⦁ 값 덮어쓰기: 같은 키로 다시 `put()` 호출 시 기존 값이 새 값으로 교체됨
⦁ 크기 계산: `size()`는 고유한 키의 개수만 반환
최종 상태:
```java
{
"Norway" → "Bergen", // "Oslo"에서 "Bergen"으로 변경됨
"Sweden" → "Stockholm",
"Denmark" → "Copenhagen"
}
// 총 3개의 키-값 쌍
```
이는 Set의 중복 제거와 유사한 동작이지만, 값이 덮어써진다는 점이 다릅니다.
💡 학습 팁
이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.