1. 가변 배열
2차원 배열을 결국 배열에 배열을 저장하는 형태로 처리하는 사실을 이용하면 길이가 정해져있는 배열이 아니라 보다 자유로운 형태의 배열을 구성할 수 있다.
2차원 이상의 다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 길이를 지정하지 않고, 추후에 각기 다른 길이의 배열을 생성함으로써 고정된 형태가 아닌 보다 유동적인 가변 배열을 구성할 수 있다.
2. 일반적인 2차원 배열 선언
int[][] arr = new int[5][3]; //5행3열의 2차원 배열
위의 코드를 아래와 같이 표현할 수 있다.
int[][] arr = new int[5][];
arr[0] = new int[3];
arr[1] = new int[3];
arr[2] = new int[3];
arr[3] = new int[3];
arr[4] = new int[3];
위의 특성을 이용하면 아래와 같이 직사각형 테이블 형태의 고정적인 2차원 배열이 아닌, 각 행마다 각기 다른 길이의 배열을 생성하는 것이 가능하다.(2차원 배열도 결국 1차원 배열에 1차원 배열을 처리하는 형태)
3. 예제 코드
int[][] arr = new int[5][];
arr[0] = new int[4];
arr[1] = new int[3];
arr[2] = new int[2];
arr[3] = new int[2];
arr[4] = new int[3];
int[][] arr = {
{10, 10, 10, 10},
{20, 20, 20},
{30, 30},
{40, 40},
{50, 50, 50}
};
가변배열 역시 중괄호{}를 이용하여 다음과 같이 생성과 초기화를 동시에 하는 것이 가능하다.