Chpt. 5 배열 - 주제 2. 2차원 배열은 배열의 배열이다.
테이블 형태의 데이터를 저장하기 위해서 2차원 배열이 필요하다.
1. 2차원 배열의 선언과 생성 그리고 초기화
1) 2차원 배열의 선언과 생성
1차원 배열에 아무 곳에 []를 추가해주면 2차원 배열이 된다. 따라서 다음과 같은 형태로 2차원 배열을 선언할 수 있다. 참고로 []을 하나 추가할 때마다 차원이 증가하게 된다.
(1) 타입[][] 변수 이름; [예] int[][] 2dArr
(2) 타입[] 변수 이름[]; [예] int 2dArr[]
(3) 타입 변수 이름[][]; [예] int 2dArr[][]
보통 (1)과 같은 형태로 선언한다.
그리고 다음과 같은 형태로 2차원 배열을 생성할 수 있다.
타입[][] 변수 이름 = new 타입[행 길이][열 길이];
int[][] engScores = new int[3][2];를 실행하면 다음 [그림1] 과 같은 배열이 선언 후 생성된다.
노란색으로 강조된 부분을 보면 주제의 제목처럼 왜 2차원 배열이 배열의 배열인가를 알 수 있다. 기존 1차원 배열의 인덱스와 마찬가지로 2차원 배열의 인덱스는 0부터 각각 (열 또는 행의 길이) -1이다. 또한 변수[행 인덱스][열 인덱스]를 통해 2차원 배열 요소에 접근할 수 있다.
2) 2차원 배열의 초기화
2차원 배열의 초기화는 1차원 배열을 초기화하는 방법과 같지만 {}를 추가해 행별로 구분해준다.
int[][] engScore = {
{100, 95},
{98, 76},
{100, 52}, // , 생략 가능
};
한 줄에 쓸 수도 있지만 가독성을 위해 위와 같이 쓰도록 하자.
2. 2차원 배열의 출력
2차원 배열을 출력하기 위해서는 중첩 for문을 사용하거나 Arrays.deepToString(배열 변수)을 출력하는 방법을 사용한다.