배열 항목에는 또 다른 배열이 대입될 수 있는데, 이러한 배열을 다차원 배열이라고 부른다. 다차원 배열은 1차원 배열을 서로 연결한 것이라고 볼 수 있다. 다차원 배열에서 각 차원의 항목에 접근하는 방법은 다음과 같다.
변수[1차원인덱스][2차원인덱스]...[N차원인덱스]
값 목록으로 다차원 배열 생성
값 목록을 다차원 배열을 생성하려면 배열 변수 선언 시 타입 뒤에 대괄호 []를 차원의 수만큼 붙이고, 값 목록도 마찬가지로 차원의 수만큼 중괄호를 중첩시킨다.
타입[][] 변수 = {
{ 값1, 값2, ... },
{ 값3, 값4, ... },
...
};
두 반의 학생 점수를 저장하는 배열을 생성해 보자. 각 반은 1차원 배열이고, 해당 반의 학생 점수는 2차원 배열이라고 볼 수 있다.
int[][] scores = {
{ 80, 90, 96 }, // 1차원 배열의 0 인덱스 : 첫번째 반 성적
{ 76, 88 } // 1차원 배열의 1 인덱스 : 두번째 반 성적
};
각 반의 학생 점수는 다음과 같이 읽을 수 있다.
int score = scores[0][2]; // 96
int score = scores[1][1]; // 88
반의 개수는 1차원 배열의 길이와 동일하고, 각 반의 학생 수는 2차원 배열의 길이와 동일하기 때문에 다음과 같이 배열의 length 필드로 반의 개수와 학생 수를 알 수 있다.
score.length // 반의 수 : 2
scores[0].length // 첫번째 반의 학생 수 : 3
scores[1].length // 두번째 반의 학생 수 : 2
new 연산자로 다차원 배열 생성
new 연산자로 다차원 배열을 생성하려면 배열 변수 선언 시 타입 뒤에 대괄호 []를 차원의 수만큼 붙이고, new 타입 뒤에도 차원의 수만큼 대괄호 []를 작성하면 된다.
타입[][] 변수 = new 타입[1차원 수][2차원 수];
마지막 차원의 항목의 값은 초기값을 가진다.
int[][] scores = new int[2][3];
int[][] scores = {
{0, 0, 0},
{0, 0, 0}
};
만약 두 반의 학생 수가 다를 경우 2차원 배열의 길이를 다르게 줄 수 있다. 1차원 배열의 길이를 2로 해서 배열 객체를 우선 생성하고, 각각의 항목 값으로 길이가 다른 2차원 배열을 대입하면 된다.
int[] scores = new int[2][];
scores[0] = new int[3]; // 첫번째 반의 학생 수가 3명
scores[1] = new int[2]; // 두번째 반의 학생 수가 2명
'Language > JAVA' 카테고리의 다른 글
| [JAVA] 클래스 (0) | 2024.09.04 |
|---|---|
| [JAVA] 객체지향 프로그래밍 (3) | 2024.09.04 |
| [JAVA] 배열(Array) (0) | 2024.09.03 |
| [JAVA] 문자열(String) (2) | 2024.09.03 |
| [JAVA] 참조 타입 (0) | 2024.09.03 |