어제 오늘 내일

[Java 기초] Arrays.fill()로 배열 값 초기화하기 본문

IT/Java

[Java 기초] Arrays.fill()로 배열 값 초기화하기

hi.anna 2025. 8. 25. 12:35

 

자바(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()은 배열 초기화를 간단하게 만들어주는 유용한 메서드로, 반복문 없이 한 줄로 값을 채울 수 있습니다.

 

반응형
Comments