IT/Java

[Java] 다차원 배열

Huitopia 2024. 2. 27. 10:50
728x90

다차원 배열

배열 항목에 또 다른 배열 대입을 다차원 배열이라 한다. 

변수[1차원인덱스][2차원인덱스]...[N차원인덱스]
intArray[2][4];

 

값 목록으로 다차원 배열 생성

배열 변수 선언 시 타입 뒤에 대괄호 {}를 차원의 수만큼 붙이고, 값 목록도 차원의 수만큼 중괄호를 중첩시킨다.

예제 코드

int[][] scores = {
	{70, 80, 60},
    {90, 80}
};

 

 

new 연산자로 다차원 배열 생성

배열 변수 선언 시 타입 뒤에 대괄호를 차원의 수만큼 붙이고, new 타입 뒤에도 차원의 수만큼 대괄호 []를 작성하면 된다.

int[][] scores = new int[2][3];

항목들은 초기값으로 지정된다.

 

배열의 길이를 다르게 줄 수 있다.

int[][] scores = new int[2][];
scores[0] = new int[3];
scores[1] = new int[2];
  • 1차원의 배열 길이로 배열 객체 우선 생성
  • 각각의 항목 값으로 길이가 다른 2차원 배열 대입

다차원 배열 예제 코드

더보기
public static void main(String[] args) {
        int[][] mathScores = new int[2][3];

        //  배열 항목 초기값 출력
        for (int i = 0; i < mathScores.length; i++) {
            for (int j = 0; j < mathScores[i].length; j++) {
                System.out.println("[i][j] = " + i + j + mathScores[i][j]);
            }
        }
        System.out.println();
        //  배열 항목 값 변경
        mathScores[0][0] = 80;
        mathScores[0][1] = 83;
        mathScores[0][2] = 85;
        mathScores[1][0] = 86;
        mathScores[1][1] = 90;
        mathScores[1][2] = 92;
        //  전체 학생의 수학 평균 구하기
        int totalStudent = 0;
        int totalSum = 0;
        for (int i = 0; i < mathScores.length; i++) {
            totalStudent += mathScores[i].length;
            for (int j = 0; j < mathScores[i].length; j++) {
                totalSum += mathScores[i][j];
            }
        }
        double totalAvg = (double) totalSum / totalStudent;
        System.out.println("totalStudent = " + totalStudent);
        System.out.println("totalAvg = " + totalAvg);

        // 각 반의 학생 수가 다를 경우 저장을 위한 2차원 배열 생성
        int[][] engScore = new int[2][];
        engScore[0] = new int[2];
        engScore[1] = new int[3];
        // 배열 항목 초기값 출력
        for (int i = 0; i < engScore.length; i++) {
            for (int j = 0; j < engScore[i].length; j++) {
                System.out.println("engScore = " + engScore[i][j]);
            }
        }
        // 배열 항목 값 변경
        engScore[0][0] = 90;
        engScore[0][1] = 91;
        engScore[1][0] = 92;
        engScore[1][1] = 93;
        engScore[1][2] = 94;
        //  전체 학생의 영어 평균 구하기
        totalStudent = 0;
        int totalEngSum = 0;
        for (int i = 0; i < engScore.length; i++) {
            totalStudent += engScore[i].length;
            for (int j = 0; j < engScore[i].length; j++) {
                totalEngSum += engScore[i][j];
            }
        }
        double totalEngAvg = (double) totalEngSum / totalStudent;
        System.out.println("totalEngAvg = " + totalEngAvg);

    }

 

 

 

728x90