반응형
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
- windows
- input
- Eclipse
- html
- 인텔리제이
- 자바
- Button
- CSS
- 테이블
- 문자열
- 정규식
- 이클립스
- vscode
- Visual Studio Code
- list
- string
- table
- 자바스크립트
- Java
- js
- Array
- javascript
- date
- Maven
- json
- 이탈리아
- IntelliJ
- 배열
- ArrayList
- CMD
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Collections.singletonList()로 단일 요소 불변 리스트 만들기 본문
리스트가 필요하지만 요소가 딱 하나만 있어야 할 때가 있습니다.
예를 들어, 어떤 API가 리스트를 요구하지만 실제로는 한 개 값만 넘겨주고 싶을 때 유용합니다.
이럴 때 Collections.singletonList()
를 사용하면 됩니다.
이 메서드는 하나의 요소만 가진 불변(immutable) 리스트를 만들 때 사용합니다.
1. 기본 사용법
import java.util.*;
public class SingletonListExample1 {
public static void main(String[] args) {
List<String> fruit = Collections.singletonList("apple");
System.out.println(fruit);
}
}
실행 결과
[apple]
👉 "apple"
하나만 담긴 리스트가 만들어졌습니다.
2. 수정 불가능한 리스트
singletonList()
로 만든 리스트는 불변이기 때문에 수정할 수 없습니다.
import java.util.*;
public class SingletonListExample2 {
public static void main(String[] args) {
List<Integer> number = Collections.singletonList(100);
number.add(200); // 수정 시도
}
}
실행 결과 (예외 발생)
Exception in thread "main" java.lang.UnsupportedOperationException
👉 요소 추가, 삭제, 교체 모두 불가능합니다.
3. 활용 예시
- API 호출 시: 인자가
List<T>
타입일 때, 단일 요소만 넘겨야 할 경우 - 테스트 코드 작성: 간단하게 한 개 값만 가진 리스트가 필요할 때
- 불변 데이터 전달: 값이 바뀌면 안 되는 상황에서 안전하게 사용
4. 주의할 점
Collections.singletonList()
는 리스트의 크기가 1로 고정됩니다.- 내부의 요소는
null
도 가능하지만, 바꾸는 것은 불가능합니다. - 자바 9 이상이라면
List.of("apple")
같은 문법도 비슷한 효과를 냅니다.
5. 정리
Collections.singletonList(T o)
👉 단일 요소만 가진 불변 리스트 반환- 수정하려고 하면
UnsupportedOperationException
발생 - API 호출, 테스트, 불변 데이터 전달에 유용
👉 리스트에 요소가 하나만 필요하다면 Collections.singletonList()
가 가장 간단하다!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Collections.emptySet()으로 비어있는 불변 Set 만들기 (0) | 2025.09.06 |
---|---|
[Java 기초] Collections.emptyList()로 비어있는 불변 리스트 만들기 (0) | 2025.09.06 |
[Java 기초] Collections.unmodifiableList()로 읽기 전용 리스트 만들기 (0) | 2025.09.05 |
[Java 기초] Collections.replaceAll()으로 리스트 요소 일괄 교체하기 (1) | 2025.09.04 |
[Java 기초] Collections.swap()으로 리스트 요소 교환하기 (0) | 2025.09.04 |
Comments