반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- string
- html
- 테이블
- 정규식
- js
- Visual Studio Code
- vscode
- CMD
- 배열
- ArrayList
- 자바스크립트
- 이탈리아
- 인텔리제이
- 문자열
- IntelliJ
- windows
- list
- Button
- Maven
- Eclipse
- json
- Java
- 이클립스
- input
- date
- table
- CSS
- 자바
- Array
- javascript
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Collections.singletonMap()으로 단일 요소 불변 Map 만들기 본문
때로는 Map
이 필요하지만 실제로는 키-값 쌍이 하나만 있어야 할 때가 있습니다.
예를 들어 API 호출에 Map<String, String>
타입이 필요하지만 값이 딱 하나라면, 굳이 HashMap
을 만들 필요가 없죠.
이럴 때 Collections.singletonMap()
을 쓰면 간단하고 안전하게 처리할 수 있습니다.
이 메서드는 하나의 키-값 쌍만 가진 불변(immutable) Map을 만들 때 사용합니다.
1. 기본 사용법
import java.util.*;
public class SingletonMapExample1 {
public static void main(String[] args) {
Map<String, String> country = Collections.singletonMap("KR", "Korea");
System.out.println(country);
}
}
실행 결과
{KR=Korea}
👉 "KR" -> "Korea"
하나만 담긴 불변 Map이 만들어졌습니다.
2. 수정 불가능한 Map
singletonMap()
으로 만든 Map은 불변이므로 수정할 수 없습니다.
import java.util.*;
public class SingletonMapExample2 {
public static void main(String[] args) {
Map<Integer, String> user = Collections.singletonMap(1, "Alice");
user.put(2, "Bob"); // 수정 시도
}
}
실행 결과 (예외 발생)
Exception in thread "main" java.lang.UnsupportedOperationException
👉 put()
, remove()
같은 수정 메서드는 모두 예외가 발생합니다.
3. 활용 예시
- API 호출 시: 단일 키-값만 넘겨야 할 때
- 불변 데이터 전달: 수정되면 안 되는 설정값이나 파라미터 전달 시
- 테스트 코드 작성: 간단하게 한 쌍만 가진 Map 필요할 때
4. 주의할 점
Collections.singletonMap()
은 항상 요소가 1개인 불변 Map을 반환합니다.- 내부 값은
null
도 가능하지만, 수정은 불가능합니다. - 자바 9 이상에서는
Map.of("KR", "Korea")
같은 문법으로도 동일하게 구현 가능합니다.
5. 정리
Collections.singletonMap(K key, V value)
👉 단일 키-값 쌍만 가진 불변 Map 반환- 수정 시도 →
UnsupportedOperationException
발생 - API 호출, 불변 데이터 전달, 테스트용으로 활용 가능
👉 키-값 하나짜리 Map이 필요하다면 Collections.singletonMap()
이 가장 간단하다!
반응형
'IT > Java' 카테고리의 다른 글
[Java] Collections.synchronizedMap()으로 스레드 안전한 맵 만들기 (0) | 2025.09.09 |
---|---|
[Java] Collections.synchronizedList()로 스레드 안전한 리스트 만들기 (0) | 2025.09.08 |
[Java 기초] Collections.singleton()으로 단일 요소 불변 Set 만들기 (0) | 2025.09.07 |
[Java 기초] Collections.emptyMap()으로 비어있는 불변 Map 만들기 (0) | 2025.09.07 |
[Java 기초] Collections.emptySet()으로 비어있는 불변 Set 만들기 (0) | 2025.09.06 |
Comments