package ex_Array;
public class Ex1 {
public static void main(String[] args) {
/*
* 가변 배열(dynamic array)
*
* - 다차원 배열에서 마지막 차수의 크기를 지정하지 않고 각각 다르게 지정
* - 2차원 배열을 생성할 때 열의 길이를 명시하지 않음으로써, 행마다 다른 길이의 배열 요소를 저장
*/
// 2차원 배열 3행 크기의 가변 배열 생성
int[][] arr = new int[3][];
arr[0] = new int[2]; // 1행에 2열의 크기 생성
// 2행에 4열 크기 / 3행에는 1열의 크기 생성
arr[1] = new int[4];
arr[2] = new int[1];
// 행의 인덱스 0 ~ 행 크기 - 1 만큼 반복
for (int i = 0; i < arr.length; i++) {
// i행의 열 크기 출력
System.out.println("arr 배열의 " + (i + 1) + " 행의 크기 : " + arr[i].length);
}
// 가변 배열을 선언과 동시에 초기화 블록으로 초기화
int[][] arr2 = {
{10, 20}, // 1행의 데이터
{10, 20, 30, 40}, // 2행의 데이터
{10} // 3행의 데이터
};
// 반복문을 이용해서 arr2의 데이터를 모두 출력
/*
* 출력결과
* arr2[0][0] = 10 arr2[0][1] = 20
* arr2[1][0] = 10 arr2[1][1] = 20 ....
* ...
*
*/
// 행크기 만큼 반복
for (int i = 0; i < arr2.length; i++) {
// 열 크기 만큼 반복
for (int j = 0; j < arr2[i].length; j++) {
System.out.printf(" arr2[%d][%d] = %d", i, j, arr2[i][j]);
}
System.out.println(); // 줄바꿈
}
}
}