[Java] 다차원 배열
Java다차원 배열
대괄호의 개수에 따라 차원의 수가 결정된다.
주로 [] 1차원, [][] 2차원 배열이 사용되고 3차원 이상의 고차원 배열은 잘 사용되지 않는다.
그 중 2차원 배열을 살펴보자.
선언
타입[][] 변수이름;
타입 변수이름[][];
타입[] 변수이름[];
1차원 배열에 대괄호가 하나 더 늘어났다.
2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용된다.
int[][] array;
int array[][];
생성
2차원 배열은 행(row)과 열(column)로 구성되어 있다.
int array[][] = new int[2][3];
열0 | 열1 | 열2 | |
---|---|---|---|
행0 | 0 | 0 | 0 |
행1 | 0 | 0 | 0 |
- index
index도 행과 열에 각각 하나씩 존재한다.
행 index 범위 : 0 ~ 행의 길이-1
열 index 범위 : 0 ~ 열의 길이-1
저장 공간은 행 index * 열 index 만큼 생성된다.
열0 | 열1 | 열2 | |
---|---|---|---|
행0 | array[0][0] | array[0][1] | array[0][2] |
행1 | array[1][0] | array[1][1] | array[1][2] |
- 값 출력
int array[][] = new int[2][3];
array[1][1] = 5;
System.out.println(array[1][1]); // 5
초기화
괄호{ }로 행을 구분한다.
int[][] arr = new int[][]{{1, 2, 3, 4}, {5, 6, 1, 2}, {3, 4, 5, 6}};
int[][] arr = {{1, 2, 3, 4}, {5, 6, 1, 2}, {3, 4, 5, 6}};
행마다 줄 바꿈을 해주면 가독성이 좋아진다.
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 1, 2},
{3, 4, 5, 6}
};
형태
배열의 배열.
여러 개의 1차원 배열을 묶어서 또 하나의 배열로 만든 것.
arr | ||||
---|---|---|---|---|
0x100 | ||||
arr[0] | arr[0][0] | arr[0][1] | arr[0][2] | arr[0][3] |
0x200 | 1 | 1 | 3 | 4 |
arr[1] | arr[1][0] | arr[1][1] | arr[1][2] | arr[1][3] |
0x300 | 5 | 6 | 1 | 2 |
arr[2] | arr[2][0] | arr[2][1] | arr[2][2] | arr[2][3] |
0x400 | 3 | 4 | 5 | 6 |
- arr.length = 행의 개수. 3
- arr[index].length = 행index의 열의 개수. 4
가변 배열
2차원 이상의 다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 길이를 지정하지 않고,
추후에 각기 다른 길이의 배열을 생성하여 유동적인 배열을 구성할 수 있다.
int[][] arr = new int[2][]; // arr.length = 2
arr[0] = new int[3]; // arr[0].length = 3
arr[1] = new int[1]; // arr[1].length = 1
- 초기화
int[][] arr = {
{1, 2, 3, 4},
{5, 6},
{3, 4, 5}
};
참고 서적: 자바의 정석 3판