반응형
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
- Maven
- Array
- 이탈리아
- 인텔리제이
- ArrayList
- 배열
- Eclipse
- string
- vscode
- CMD
- 이클립스
- list
- Java
- json
- input
- date
- Button
- windows
- 정규식
- 문자열
- javascript
- js
- html
- table
- CSS
- 자바스크립트
- IntelliJ
- 테이블
- Visual Studio Code
- 자바
Archives
- Today
- Total
어제 오늘 내일
[Java] Collections.fill() – 리스트를 한 값으로 채우기 본문
리스트를 다루다 보면 테스트 데이터를 만들거나, 특정 초기값으로 리스트 전체를 채워야 할 때가 있습니다.
이때 Collections.fill()
메서드를 사용하면 아주 간단히 해결할 수 있습니다.
이 메서드는 리스트의 모든 요소를 하나의 동일한 값으로 채우는 기능을 제공합니다.
1. 기본 사용법
import java.util.*;
public class FillExample1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));
Collections.fill(list, "X");
System.out.println(list); // [X, X, X, X]
}
}
👉 모든 요소가 "X"
로 바뀌었습니다.
2. 초기화 용도로 사용
테스트용 데이터를 만들 때 유용합니다.
import java.util.*;
public class FillExample2 {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(new Integer[5]));
Collections.fill(numbers, 0);
System.out.println(numbers); // [0, 0, 0, 0, 0]
}
}
👉 길이 5짜리 리스트를 0
으로 초기화했습니다.
(Java에서 new Integer[5]
는 null
로 채워진 배열을 만듭니다 → Arrays.asList()
로 리스트 변환 → fill
로 값 채우기)
3. 주의할 점
- 리스트가 비어있으면 아무 일도 일어나지 않음
fill()
은 리스트의 기존 크기를 바꾸지 않음 → 값만 바꿈
List<String> emptyList = new ArrayList<>();
Collections.fill(emptyList, "Test"); // 예외는 안 나지만 아무 변화도 없음
Arrays.asList()
로 만든 고정 크기 리스트도fill()
적용 가능
(다만 요소의 값만 변경할 수 있고, 크기를 변경하는 add/remove는 불가능)
4. 활용 예시
- 초기화: 리스트를 모두
0
,null
, 또는 특정 기본값으로 채움 - 테스트 데이터 생성: Mock 데이터 만들 때 유용
- 게임 보드/배열 상태 세팅: 예를 들어, 체스판이나 바둑판 초기화
public class GameBoardInit {
public static void main(String[] args) {
List<String> board = new ArrayList<>(Arrays.asList(new String[9]));
Collections.fill(board, "-");
System.out.println(board); // [-, -, -, -, -, -, -, -, -]
}
}
5. 정리
Collections.fill(List<? super T> list, T obj)
→ 리스트의 모든 요소를 obj로 대체- 리스트 크기는 바뀌지 않고, 값만 변경됨
- 초기화, 테스트 데이터, 보드 게임 같은 상황에서 유용
👉 리스트 전체를 한 값으로 채워야 한다면 Collections.fill()
을 활용하자!
반응형
'IT > Java' 카테고리의 다른 글
[Java] Collections.checkedList() – 런타임 타입 안전한 리스트 만들기 (0) | 2025.09.12 |
---|---|
[Java] Collections.nCopies() – 같은 값으로 채워진 불변 리스트 만들기 (0) | 2025.09.12 |
[Java] Collections.rotate() – 리스트를 간단히 회전시키는 방법 (0) | 2025.09.11 |
[Java] Collections.disjoint() – 두 컬렉션이 겹치지 않는지 확인하기 (0) | 2025.09.10 |
[Java] Collections.synchronizedCollection()으로 아무 컬렉션이나 스레드 안전하게 (0) | 2025.09.10 |
Comments