티스토리 뷰

Java 배열 일괄 초기화 - Arrays.fill()

자바에서 배열은 모든 값을 지정한 값으로 초기화하는 메서드로 Arrays.fill()이 있다. 기존에 아래와 같이 for문을 사용해서 배열의 값을 초기화하지 않고도 간편하게 배열의 값을 초기화할 수 있다.

int arr[] = new int[10];

for(int i=0; i<arr.length; i++){
	arr[i] = -1;
}

 

 

1차원 배열 초기화

Arrays.fill(배열 변수, 초기화할 값) 의 인자를 넣어서 초기화하면 된다. 예시는 아래와 같다.

import java.util.Arrays;

public class ArrayFill{
	public static void main(String args[]){
    
    	int arr[] = new int[10];
        Arryas.fill(arr, -1);
        System.out.println(Arryas.toString(arr));	
        // [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
        
        boolean check[] = new boolean[5];
        Arryas.fill(check, true);
        
        String str[] = new String[5];
        Arrays.fill(str, "abc");
    }
}

 

 

만일, 배열 전체가 아니라 구간을 지정하여 채우고 싶다면 Arrays.fill(배열 변수, 시작, 끝+1, 초기화할 값) 의 인자를 넣어서 초기화하면 된다. 예시는 아래와 같다.

import java.util.Arrays;

public class ArrayFill{
	public static void main(String args[]){
    	
        int arr[] = new int[10][;
        Arryas.fill(arr,2,4,-1);	
        // 2번째 idx부터 3번째 idx까지 -1로 채움
        
        System.out.println(Arrays.toString(arr));	
        // [0,0,-1,-1,0,0,0,0,0,0]
        
        boolean check[] = new boolean[5];
        Arryas.fill(check,3,5,true);
        System.out.println(Arryas.toString(check));	// [false,false,false,true,true]
    }
}

 


2차원 배열 초기화

2차원 배열을 초기화하고 싶다면 아래와 같이 for문과 Arrays.fill()을 함께 사용하여 초기화할 수 있다.

import java.util.Arrays;

public class ArrayFill{
	public static void main(String args[]){
    	
        int arr[][] = new int[3][2];
        
        for(int i=0; i<arr.length; i++){
        	Arrays.fill(arr[i],1);
            System.out.println(Arrays.toString(arr[i]));
        } 
    }
}