MultiDimensionalArray


🎫2 Dアレイ


2 Dまたはそれ以上のアレイを多次元アレイと呼ぶ

🎫宣言と初期化


2 Dアレイ
ex) int[][] array2;
3 D配列複写
ex) int[][][] array3;
2 Dアレイの初期化
ex) int[][] arr = new int[2][3];

🎫2 Dアレイの練習1

int arr2[][] = new int[][] {{1,2,3},{4,5,6}};
int[] arr3[] = {{1,2,3},{4,5,6},{7,8,9}};
>
int[][] arr4 = new int[3][]; // 가변 배열 1차원만 초기화하고 2차원은 아직 초기화되지 않음
arr4[0] = new int[3];
arr4[1] = new int[4];
arr4[2] = new int[10];
>
int [][] arr = new int [2][3];
System.out.println(arr[0][1]); //[][]둘다 지정해줘야 출력할 수 있음
//arr[0] = 10; //1차원에는 값을 저장할 수 없음
arr[0] = new int[5]; //배열을 저장해야함
>
arr[0][0] = 10; //값을 저장하려면 2차원 인덱스까지 접근해야함
arr[0][1] = 20;
arr[1][0] = 100;
System.out.println(arr.length); //1차원 배열의 길이 : 2
System.out.println(arr[0].length); //2차원 배열의 길이  : 5
System.out.println(arr[1].length); //2차원 배열의 길이  : 3

//2차원 배열 => for문 2개
for(int i =0; i < arr.length; i++) {
	for(int j=0; j < arr[i].length; j++) {
		System.out.print(arr[i][j] + " ");
	}
}

🎫2 Dアレイの練習2


3人の学生は授業ごとに5つの点数がある.ランダムに採点し、合計と平均数を出力してください.
int[][] scores = new int[3][5]; //점수
int[] sum = new int[scores.length]; //합계
double[] avg = new double[scores.length]; //평균

for(int i=0; i < scores.length; i++) {
	for(int j=0; j < scores[i].length; j++) {
		scores[i][j] = (int)(Math.random() * 101); //0점부터 100점까지
		sum[i] += scores[i][j];
	}
	avg[i] = (double)sum[i]/scores[i].length;
	System.out.println("합계 : " + sum[i]+ ", 평균 : " + avg[i]);
}
System.out.println(Arrays.toString(sum));
System.out.println(Arrays.toString(avg));