반응형
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
- Visual Studio Code
- vscode
- Button
- table
- input
- windows
- Array
- list
- date
- string
- IntelliJ
- Java
- 자바스크립트
- 테이블
- Maven
- Eclipse
- ArrayList
- 이클립스
- 인텔리제이
- CMD
- 문자열
- 정규식
- 이탈리아
- javascript
- CSS
- 자바
- js
- json
- html
- 배열
Archives
- Today
- Total
어제 오늘 내일
[Java] Collections.nCopies() – 같은 값으로 채워진 불변 리스트 만들기 본문
테스트 데이터를 만들거나, 기본값이 반복되는 리스트를 빠르게 생성해야 할 때가 있습니다.
이때 Collections.nCopies()
메서드를 사용하면 아주 간단히 해결할 수 있습니다.
이 메서드는 하나의 값을 N번 반복하는 불변 리스트(읽기 전용 리스트)를 간단히 생성할 수 있습니다.
1. 기본 사용법
import java.util.*;
public class NCopiesExample1 {
public static void main(String[] args) {
List<String> list = Collections.nCopies(5, "Hello");
System.out.println(list); // [Hello, Hello, Hello, Hello, Hello]
}
}
👉 "Hello"
라는 값이 5번 반복된 리스트가 만들어집니다.
2. 불변 리스트라는 점 주의!
nCopies()
로 생성된 리스트는 읽기 전용입니다.
즉, 추가/삭제/수정이 불가능하고, 시도하면 UnsupportedOperationException
이 발생합니다.
List<Integer> nums = Collections.nCopies(3, 7);
System.out.println(nums); // [7, 7, 7]
nums.add(10); // 예외 발생! UnsupportedOperationException
👉 안전하게 변경 불가능한 리스트를 만들고 싶을 때 적합합니다.
3. 초기값 채우기에 활용하기
테스트 코드에서 자주 쓰입니다.
public class NCopiesExample2 {
public static void main(String[] args) {
List<Integer> zeros = Collections.nCopies(10, 0);
System.out.println(zeros); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
}
👉 배열이나 보드 게임 상태를 초기화할 때 유용합니다.
4. 다른 컬렉션으로 변환하기
nCopies()
로 만든 리스트를 그대로 쓸 수도 있지만, 수정 가능한 리스트가 필요하다면 새 리스트로 감싸면 됩니다.
List<String> immutable = Collections.nCopies(4, "X");
List<String> modifiable = new ArrayList<>(immutable);
modifiable.set(0, "O");
System.out.println(modifiable); // [O, X, X, X]
👉 이렇게 하면 초기값은 빠르게 생성하면서도, 자유롭게 수정할 수 있습니다.
5. 정리
Collections.nCopies(int n, T obj)
→ obj를 n번 반복한 불변 리스트 반환- 반환된 리스트는 읽기 전용 (add/remove/set 불가)
- 초기화, 테스트 데이터, 반복 값 세팅할 때 유용
- 필요하다면
new ArrayList<>(...)
로 수정 가능한 리스트로 변환 가능
👉 같은 값으로 채워진 불변 리스트가 필요하다면 Collections.nCopies()
를 쓰자!
반응형
'IT > Java' 카테고리의 다른 글
[Java] Collections.unmodifiableList() – 읽기 전용 리스트 만들기 (0) | 2025.09.13 |
---|---|
[Java] Collections.checkedList() – 런타임 타입 안전한 리스트 만들기 (0) | 2025.09.12 |
[Java] Collections.fill() – 리스트를 한 값으로 채우기 (0) | 2025.09.11 |
[Java] Collections.rotate() – 리스트를 간단히 회전시키는 방법 (0) | 2025.09.11 |
[Java] Collections.disjoint() – 두 컬렉션이 겹치지 않는지 확인하기 (0) | 2025.09.10 |
Comments