본문 바로가기

언어공부/Java

자바 다차원 배열 - 2차원 배열 (이차원 배열) 선언 및 생성/ 배열 초기화/ 배열 인덱스/ 배열 길이/ 배열 출력

자바 다차원 배열인 2차원 배열에 대해서 알아보자.

2차원 배열(이차원 배열)

2차원 이상의 배열을 다차원 배열이라고 하며, 메모리 용량이 허용하는 한 차원의 제한은 없지만 주로 1, 2차원 배열이 사용되므로 2차원 배열은 1차원 배열에서 대괄호([ ])가 하나 더 추가된다. 주로 테이블 형태의 데이터를 담는데 사용되며, n행 m열의 데이터를 담기 위한 배열이다.

 


2차원 배열 선언 및 생성

2행 3열의 데이터를 담기 위한 배열을 생성하려면 아래와 같이 작성한다.

ex) int[ ][ ] score = new int[2][3]; // 2행 3열의 2차원 배열 생성.

위의 배열을 생성하면, 2행 3열의 데이터로 6개의 int값을 저장할 수 있는 공간이 생긴다.

 


2차원 배열 초기화

2차원 배열도 1차원 배열과 같이 { }를 사용해 선언, 생성 및 초기화를 동시에 할 수 있다.

ex) int[ ][ ] score= {{70, 80, 90}, {80, 90, 100}};//new int[ ][ ] 가 생략. 2행 3열의 2차원 배열 선언, 생성 및 초기화.

 


2차원 배열 인덱스

2차원 배열은 행(row)과 열(column)로 구성되어 있기 때문에 index도 행과 열에 하나씩 존재한다. 인덱스는 1이 아닌 0부터 시작되는 것에 유의해야된다. 2차원 배열의 각 원소에 접근하는 방법은 "배열이름[행 인덱스][열 인덱스]"이다.

 

int[ ][ ] score= {{70, 80, 90}, {80, 90, 100}};로 2행 3열의 배열을 만들었을 때, 각 인덱스마다 원소값은 아래와 같다.

score[0][0]=70; //1행 1열의 값

score[0][1]=80; //1행 2열의 값

score[0][2]=90; //1행 3열의 값

score[1][0]=80; //2행 1열의 값

score[0][1]=90; //2행 2열의 값

score[0][2]=100; //2행 3열의 값

 


2차원 배열 길이

2차원 배열은 배열의 배열로 구성되어 있다. 여러 개의 1차원의 배열을 묶어서 하나의 배열을 만든 것으로 볼 수 있다.

 

int[ ][ ] score= {{70, 80, 90}, {80, 90, 100}};로 2행 3열의 배열을 만들었을 때, score.lnegth의 값은 2이다. 그리고 score[0].length의 값은 3이다. 참조변수 score[0]이 참조하고 있는 배열의 길이이기 때문이다. 여기서 score[1].length의 값도 3이다. 

 

score.length=행의 길이 / score[i].length=열의 길이로 보면 될 것 같다.

 

 


2차원 배열 출력

2차원 배열에 저장된 값을 확인하려면 아래와 같은 방법들이 있다.

 

for문으로 2차원 배열 출력

 

확장 for문으로 2차원 배열 출력

 

이 외에 deepToString()메소드를 이용해 출력할 수 있다.

ex) System.out.println(Arrays.deepToString(score)); //[70, 80, 90], [80, 90, 100]