안녕하세요. 본질을 추구하는 개발자 우주호입니다.
알고리즘 혹은 개발을 하다보면 종종 배열 초기화하는 일이 있으며 초기화중 하나인 Arrays.fill 메소드를 통해 초기화해보고자 합니다.
/**
* Assigns the specified int value to each element of the specified array
* of ints.
*
* @param a the array to be filled
* @param val the value to be stored in all elements of the array
*/
public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
Arrays.fill 메소드는 1차원배열을 초기화하는 메소드이다.
2차원배열 초기화시 1차원 배열 타겟으로 메소드 수행하면 되고
3차원배열 초기화시 2차원 배열로 나누고, 2차원 배열을 다시 1차원 배열 타겟으로 메소드 수행하면 초기화를 쉽게 할 수 있다.
[2차원 배열 초기화 소스코드]
int[][] D_2 = new int[5][5]; // 2차원 배열 초기화
// 2차원 배열 초기화
for(int row[] : D_2){
Arrays.fill(row, 2);
}
// 2차원 배열 출력
for(int r=0; r<5; r++){
for(int c=0; c<5; c++){
System.out.print(D_2[r][c]+ " ");
}
System.out.println();
}
System.out.println();
[출력 결과]

[3차원 배열 초기화 소스코드]
int[][][] D_3 = new int[3][3][3];
// 3차원 배열 초기화
for(int row[][] : D_3){
for(int row2[] : row){
Arrays.fill(row2, 2);
}
}
// 3차원 배열 출력
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
for(int k=0; k<3; k++){
System.out.print(D_3[i][j][k] + " ");
}
System.out.println("");
}
System.out.println("");
System.out.println("");
}
[출력결과]
