객체 파트를 위해 배열의 메모리 구조 확실히 기억해두기
- 2차원 배열 선언과 할당
- 2차원 배열 구조
- 2차원 배열 초기화
- 가변 배열
자료형이 같은 1차원 배열의 묶음으로 배열 안에 다른 배열이 존재한다.
2차원 배열은 할당된 공간마다 행과 열 인덱스 번호 두 개를 부여한다.
// 배열 선언
자료형[][] 배열명;
자료형 배열명[][];
// 배열 할당
자료형[][] 배열명 = new 자료형[행크기][열크기];
자료형 배열명[][] = new 자료형[행크기][열크기];
// 예시
int[][] arr = new int[3][4];
int arr[][] = new int[3][4];
2차원 배열은 1차원 배열 참조 변수를 묶음으로 다루는 것이다.
2차원 배열 참조 변수에는 1차원 배열 참조 변수 묶음의 시작 주소가 저장된다.
2차원 배열을 초기화하는 방법은 다음과 같다.
// 인덱스를 이용한 초기화
arr[0][0] = 1;
// for 문을 이용한 초기화
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr[i].length; j++) {
arr[i][j] = j;
}
}
// 선언과 동시에 초기화
int[]][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}};
int[][] arr = new int[][] {{1, 2, 3, 4}, {5, 6, 7, 8}};
String fruit[][] = {{"사과", "딸기", "석류"}, {"바나나", "참외", "레몬"}};
다차원 배열 생성 시 마지막 배열차수의 크기를 지정하지 않고
나중에 서로 크기가 다른 배열로 지정한 배열이다.
// 가변 배열 할당
자료형[][] 배열명 = new 자료형[행크기][];
// 예시
int[][] arr = new int[4][];
arr[0] = new int[3];
arr[1] = new int[4];
arr[2] = new int[5];
arr[3] = new int[2];