Language/JAVA

[JAVA] 다차원 배열

IT수정 2024. 9. 3. 23:06

배열 항목에는 또 다른 배열이 대입될 수 있는데, 이러한 배열을 다차원 배열이라고 부른다. 다차원 배열은 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