2차원 배열을 1차원 배열로 변환하는 것을 평탄화(flatten)라고 하는데, 어떻게 하는지 알아보겠습니다.

1. for문을 이용한 방법

2중 for문을 사용하여 2차원 배열을 1차원 배열로 변환할 수 있습니다.

  • 먼저 2차원 배열의 요소 개수만큼의 1차원 배열 생성
  • 2중 for문으로 2차원 배열을 순회하면서 1차원 배열에 값 할당
import java.util.*;

public class Example {

    public static void main(String[] args) {

        int[][] multiArray = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
        };

        int rows = multiArray.length;
        int cols = multiArray[0].length;
        int[] flatArray = new int[rows * cols];

        // 2차원을 1차원으로 평탄화
        int index = 0;
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                flatArray[index++] = multiArray[i][j];
            }
        }

        // 평탄화된 배열 출력
        System.out.println(Arrays.toString(flatArray));
    }
}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

2. Stream을 이용한 방법

Stream의 flatMapToInt()를 사용하여 2차원 배열을 평탄화 할 수 있습니다.

  • 2차원배열을 Stream으로 만듬
  • flatMapToInt(Arrays::stream) : 2차원 배열을 평탄화
  • toArray() : 결과를 배열로 변환
import java.util.*;

public class Example {

    public static void main(String[] args) {

        int[][] multiArray = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
        };

        // 2차원을 1차원으로 평탄화
        int[] flatArray = Arrays.stream(multiArray)
                .flatMapToInt(Arrays::stream)
                .toArray();

        // 평탄화된 배열 출력
        System.out.println(Arrays.toString(flatArray));
    }
}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]