반응형
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 |
31 |
Tags
- 정규식
- string
- 문자열
- html
- javascript
- Eclipse
- date
- js
- input
- 배열
- ArrayList
- Button
- Visual Studio Code
- table
- 인텔리제이
- 테이블
- 이클립스
- json
- 이탈리아
- Java
- 자바
- CMD
- IntelliJ
- CSS
- list
- 자바스크립트
- Array
- vscode
- Maven
- windows
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.fill()로 배열 값 초기화하기 본문
자바(Java)에서 배열을 다루다 보면 모든 값을 한꺼번에 초기화해야 하는 경우가 자주 있습니다.
예를 들어,
- 배열의 모든 값을 0으로 만들고 싶을 때
- 특정 초기값으로 전체 배열을 채우고 싶을 때
- 테스트 데이터나 기본값 세팅이 필요할 때
이럴 때 유용하게 쓸 수 있는 메서드가 바로 Arrays.fill()입니다.
1. Arrays.fill() 기본 사용법
자바의 Arrays 클래스는 배열을 다룰 때 유용한 여러 메서드를 제공하는데,
그중 fill()은 배열의 모든 값을 같은 값으로 채워 넣는 기능을 합니다.
import java.util.Arrays;
public class FillExample1 {
public static void main(String[] args) {
int[] numbers = new int[5];
Arrays.fill(numbers, 7);
System.out.println(Arrays.toString(numbers));
}
}
실행 결과
[7, 7, 7, 7, 7]
👉 배열의 크기는 5이고, 모든 값이 7로 초기화되었습니다.
2. 부분 범위만 채우기
Arrays.fill()은 배열 전체뿐만 아니라, 특정 범위만 채울 수도 있습니다.
import java.util.Arrays;
public class FillExample2 {
public static void main(String[] args) {
int[] numbers = new int[10];
// 인덱스 3부터 7(미포함)까지 1로 채우기
Arrays.fill(numbers, 3, 7, 1);
System.out.println(Arrays.toString(numbers));
}
}
실행 결과
[0, 0, 0, 1, 1, 1, 1, 0, 0, 0]
👉 Arrays.fill(array, fromIndex, toIndex, value)는
- fromIndex 포함
- toIndex 미포함
범위를 채워줍니다.
3. 문자열 배열에도 활용 가능
숫자뿐 아니라 문자열 배열에도 fill()을 적용할 수 있습니다.
import java.util.Arrays;
public class FillExample3 {
public static void main(String[] args) {
String[] names = new String[4];
Arrays.fill(names, "홍길동");
System.out.println(Arrays.toString(names));
}
}
실행 결과
[홍길동, 홍길동, 홍길동, 홍길동]
👉 모든 값이 "홍길동"으로 채워집니다.
4. 2차원 배열에서 Arrays.fill()
주의할 점은, 2차원 배열에 fill()을 바로 쓰면 원하는 대로 되지 않을 수 있다는 것입니다.
예를 들어, 아래 코드를 보겠습니다.
import java.util.Arrays;
public class FillExample4 {
public static void main(String[] args) {
int[][] matrix = new int[3][3];
Arrays.fill(matrix, new int[]{1, 1, 1});
System.out.println(Arrays.deepToString(matrix));
}
}
실행 결과
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
겉보기엔 잘 동작하는 것 같지만, 사실 모든 행이 같은 배열 객체를 참조합니다.
즉, 한 행의 값을 바꾸면 다른 행도 같이 바뀌게 됩니다.
👉 따라서 2차원 배열을 채울 때는 보통 for문 안에서 fill()을 사용합니다.
import java.util.Arrays;
public class FillExample5 {
public static void main(String[] args) {
int[][] matrix = new int[3][3];
for (int i = 0; i < matrix.length; i++) {
Arrays.fill(matrix[i], 5);
}
System.out.println(Arrays.deepToString(matrix));
}
}
실행 결과
[[5, 5, 5], [5, 5, 5], [5, 5, 5]]
👉 이렇게 하면 각 행이 독립적인 배열로 채워집니다.
5. 정리
- Arrays.fill(array, value) → 배열 전체를 채움
- Arrays.fill(array, from, to, value) → 부분 범위만 채움
- 숫자, 문자열 등 모든 타입 배열에 사용 가능
- 2차원 배열은 for문과 함께 사용해야 안전
Arrays.fill()은 배열 초기화를 간단하게 만들어주는 유용한 메서드로, 반복문 없이 한 줄로 값을 채울 수 있습니다.
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Arrays.sort()로 배열 정렬하기 (1) | 2025.08.26 |
---|---|
[Java String] String.indexOf() – 문자열에서 위치 찾기 (0) | 2025.08.26 |
[Java String] String.substring() – 문자열 자르기 (0) | 2025.08.25 |
[Java 기초] 리스트 안에 리스트 넣기 (0) | 2025.08.24 |
[Java StringBuilder] trimToSize() – 버퍼 최적화하기 (0) | 2025.08.24 |
Comments