자바 다차원 배열인 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차원 배열에 저장된 값을 확인하려면 아래와 같은 방법들이 있다.
이 외에 deepToString()메소드를 이용해 출력할 수 있다.
ex) System.out.println(Arrays.deepToString(score)); //[70, 80, 90], [80, 90, 100]
'언어공부 > Java' 카테고리의 다른 글
자바 메소드(Method) - 메소드 선언 / 메소드의 선언부 / 메소드의 구현부/ 지역변수/ 메소드의 호출 (0) | 2021.05.05 |
---|---|
자바 클래스와 객체 - 객체지향 언어/ 객체 속성과 기능/ 객체와 인스턴스/ 객체의 생성과 사용 (0) | 2021.05.03 |
자바 배열 선언 및 생성/ 배열 초기화 / 배열 인덱스 / 배열 길이 / 배열 출력 (0) | 2021.05.02 |
자바 보조 제어문 - break 문, continue문 +레이블 (0) | 2021.05.01 |
자바 반복문 - while문/ 무한루프문/ do~while문 (0) | 2021.05.01 |