1. 2차원 배열
: 자료형이 같은 1차원 배열의 묶음, 배열 안에 다른 배열 존재
자료형[][] 배열이름 = new 자료형[행크기][열크기];
자료형 배열이름[][] = new 자료형[행크기][열크기];
자료형[] 배열이름[] = new 자료형[행크기][열크기];
2. 메모리

배열은 스택영역에 저장된 것과 같이 111번지를 참조한다.
힙영역에서 111번지에는 행의 개수만큼 공간이 존재한다.
그 공간들(즉 배열의 각 행)은 또 다시 주소값( 0x222, 0x333, 0x444 )을 가진다.
각각의 주소값(0x222, 0x333, 0x444)에 실제로 데이터가 저장된다.
그러므로 실제 데이터를 얻고싶다면 Array[0]이 아닌 Array[0][0]으로 써야한다.
Array[0] : 0x111번지
Array[0][0] : 실제 데이터
3. 배열 초기화
1) for문을 이용한 초기화
for(int i = 0; i< arr.length; i++) { //arr.length: 행의 길이
for(int j = 0; j < arr[i].length; j++) { //arr[i].length : 행의 열의 개수
arr[i][j] = j;
}
}
2) 선언과 동시에 초기화
int[][] arr = {{1,2,3,4}, {5,6,7,8}}
arr[1][1] → 6
arr[0][3] → 4
4. 가변배열
: 행은 정해졌으나 각 행에 대한 열의 갯수가 정해지지 않은 상태
int[][] arr = new int[3][]; //열의크기는 적어주지 않아도 됨
arr[0] = new int[2]; //0행은 2열 각행마다 주소값 다르게 존재
arr[1] = new int[1]; //1행은 1열
arr[2] = new int[3]; //2행은 3열
* 값 초기화
1) 직접 입력 (위와 같이)
2) 중첩 for문
'Java > 정리' 카테고리의 다른 글
[Java] 배열복사 (0) | 2021.05.11 |
---|---|
[Java] Math.random() (0) | 2021.05.08 |
[Java] 배열 (0) | 2021.05.05 |
[Java] 조건문_Continue, Break (0) | 2021.05.05 |
[Java] (int, character) & (String) 값 비교 (0) | 2021.05.05 |