CODE/JAVA1

MultiDimensionalArray

maskan 2021. 1. 27. 15:44
import java.util.Arrays;

public class MultiDimensionalArray {

	public static void main(String[] args) {
		/*
		 * 다차원 배열
		 * - 배열 안에 배열이 저장되어 있는 형태이다.
		 */
		
		//2차원 배열
		int[][] array2; 
		
		//3차원 배열
		int[][][] array3;
		
		int[][] arr = new int[2][3]; 
		//2칸짜리 배열 안에 각 칸마다 3칸짜리 배열이 생성된다.
		/*
		 * {주소1, 주소2}
		 * 
		 * 주소1
		 * {0, 0, 0}
		 * 주소2
		 * {0, 0, 0}
		 */
		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][]; //가변배열 : 일부만 지정
		arr4[0] = new int[3];
		arr4[1] = new int[4];
		arr4[2] = new int[10];
		
		System.out.println(arr[0][1]);
		System.out.println(arr[1][2]);
		System.out.println(Arrays.toString(arr4));
		//2차원 인덱스까지 접근해야 값을 사용할 수 있다.
		
//		arr[0] = 10; //1차원에는 값을 저장할 수 없다. 배열을 저장해야함
		arr[0] = new int[5]; //1차원에는 배열을 저장해야한다.
		arr[0][0] = 10; //2차원까지 접근해야 값을 저장할 수 있다.
		arr[0][1] = 20;
		arr[1][0] = 100;
		
		System.out.println(arr.length); //1차원 배열의 길이
		System.out.println(arr[0].length); //2차원 배열의 길이
		System.out.println(arr[1].length); //2차원 배열의 길이
		
		for(int i = 0; i < arr.length; i++){
			for(int j = 0; j < arr[i].length; j++){
				System.out.println(i + ","+j+": "+ arr[i][j]);
			}
		}
		int[][] scores = new int[3][5]; //int[학생수][과목수]
		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점 생성
			}
			System.out.println(Arrays.toString(scores[i]));
		}
		for(int i = 0; i< scores.length; i++){
			for(int j = 0; j< scores[i].length; j++){
				sum[i]+=scores[i][j]; 
			}
		}
		for(int i = 0; i< scores.length; i++){
			avg[i] = sum[i]/5.0;
			System.out.println("합계 : "+sum[i]+" / 평균 : "+avg[i]);
		}

	}

}