2차원 배열은 행(Row)과 열(Column)로 이루어진 데이터를 저장하는 배열이다.
엑셀의 표나 행렬(Matrix)처럼 데이터를 테이블 형식으로 저장할 수 있는 구조이다.
예를 들어 다음과 같은 표를 2차원 배열로 표현할 수 있다.
| 열 0 | 열 1 | 열 2 |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
2차원 배열은 다음과 같이 선언할 수 있다.
데이터형[][] 배열명;
또는
데이터형 배열명[][];
또는
데이터형[] 배열명[];
세 가지 모두 같은 의미이며, 가장 많이 사용하는 형태는 다음과 같다.
int[][] arr;
배열의 크기를 지정하여 생성한다.
데이터형[][] 배열명 = new 데이터형[행의 개수][열의 개수];
예시
int[][] arr = new int[3][4];
위 코드는
인 2차원 배열을 생성한다.
배열을 생성하면서 값을 바로 저장할 수도 있다.
int[][] numbers = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
배열의 모습
| 행/열 | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 |
| 1 | 5 | 6 | 7 | 8 |
| 2 | 9 | 10 | 11 | 12 |
2차원 배열은
배열명[행][열]
형태로 접근한다.
예시
int num1 = numbers[0][1];
값은 2이다.
int num2 = numbers[2][3];
값은 12이다.
배열의 특정 값을 다른 값으로 변경할 수 있다.
numbers[1][2] = 10;
변경 전
5 6 7 8
변경 후
5 6 10 8
또 다른 예시
numbers[2][3] = 200;
변경 전
9 10 11 12
변경 후
9 10 11 200
int rows = array.length;
예시
int[][] arr = new int[3][4];
System.out.println(arr.length);
출력
3
즉, 행의 개수를 반환한다.
int cols = array[0].length;
예시
int[][] arr = new int[3][4];
System.out.println(arr[0].length);
출력
4
즉, 첫 번째 행의 열 개수를 반환한다.
2차원 배열은 보통 중첩 for문을 사용하여 출력한다.
int[][] numbers = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers[i].length; j++) {
System.out.print(numbers[i][j] + " ");
}
System.out.println();
}
출력 결과
1 2 3
4 5 6
7 8 9