지금까지의 배열은 1차원 배열인데, 2차원 이상의 배열, 즉 다차원 배열도 선언해서 사용할 수 있다. 메모리의 용량이 허용하는 한, 차원의 제한은 없지만, 주로 1, 2차원 배열이 사용된다.
2차원 배열을 선언하는 방법은 1차원 배열과 같다. 다만 대괄호[]가 하나 더 들어갈 뿐이다.
2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용되며, 만일 4행 3열의 데이터를 담기 위한 배열을 생성하려면 다음과 같이 한다.
int[][] score = new int[4][3];
위 문장이 수행되면 아래의 그림처럼 4행 3열의 데이터, 모두 12개의 int값을 저장할 수 있는 공간이 마련된다.
실제로 배열이 위처럼 [4][3] 사이즈로 생성됐다면 접근하는 방법도 같다. 첫번째 열의 2번째 칸에 접근하려면 배열이름[0][1] 로 접근하면 된다.
//배열 생성 생략
score[0][0] = 100;
System.out.println(score[0][0]);
2차원 배열도 괄호를 사용해서 생성과 초기화를 동시에하고 new 타입[][]을 생략할 수 있다.
int[][] arr = new int[][]{ {1, 2, 3}, {4, 5, 6} };
int[][] arr = { {1, 2, 3}, {4, 5, 6} }; // new int[][]가 생략됨
크기가 작은 배열은 위와 같이 간단히 한 줄로 써주는 것도 좋지만, 가능하면 다음과 같이 행 별로 줄 바꿈을 해주는 것이 보기도 좋고 이해하기 쉽다.
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
}