✅ 자바 7강 – 배열 심화와 2차원 배열 완전 정복

🧠 개념 설명

1️⃣ 배열 심화 – 배열은 객체다!
자바에서 배열은 사실상 객체(Object)입니다.
즉, 배열도 .length, .clone() 같은 메서드를 가지고 있고, null 체크도 필요해요.

2️⃣ 2차원 배열이란?
2차원 배열은 배열 안에 배열이 있는 구조예요. 쉽게 말해 행과 열이 있는 표 형태로 생각하면 돼요.
예를 들어 [3][4] 배열이면 3행 4열, 총 12개의 데이터를 저장할 수 있어요.

3️⃣ 선언 방법과 차이점

int[][] a = new int[3][4]; // 3행 4열짜리 배열
int[][] b = { {1, 2}, {3, 4}, {5, 6} }; // 초기값으로 생성

💻 예제 1 – 2차원 배열 선언과 기본 접근

public class Array2DExample1 {
    public static void main(String[] args) {
        int[][] map = new int[2][3];

        map[0][0] = 1;
        map[0][1] = 2;
        map[1][0] = 3;

        System.out.println("map[0][0] = " + map[0][0]);
        System.out.println("map[1][0] = " + map[1][0]);
    }
}

🧩 [][]는 먼저 행(row), 다음은 열(column)을 의미해요.


💻 예제 2 – 중첩 for문을 활용한 출력

public class Array2DExample2 {
    public static void main(String[] args) {
        int[][] nums = {
            {1, 2, 3},
            {4, 5, 6}
        };

        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums[i].length; j++) {
                System.out.print(nums[i][j] + " ");
            }
            System.out.println(); // 줄바꿈
        }
    }
}

📌 nums.length는 행의 수, nums[i].length는 i번째 행의 열 수예요.


💻 예제 3 – 불규칙한 2차원 배열 (Jagged Array)

public class JaggedArrayExample {
    public static void main(String[] args) {
        int[][] jagged = new int[3][];
        jagged[0] = new int[2];
        jagged[1] = new int[4];
        jagged[2] = new int[1];

        jagged[1][2] = 99;

        System.out.println("jagged[1][2] = " + jagged[1][2]);
    }
}

⚠️ 자바의 2차원 배열은 사실 배열 안에 배열이기 때문에, 행마다 크기가 다를 수 있어요!


💻 예제 4 – 2차원 배열의 합 구하기

public class Array2DSum {
    public static void main(String[] args) {
        int[][] scores = {
            {80, 90, 100},
            {70, 60, 75}
        };

        int total = 0;
        for (int[] row : scores) {
            for (int score : row) {
                total += score;
            }
        }

        System.out.println("총합: " + total);
    }
}

📊 실전에서 이런 합계 계산은 정말 자주 써요!


🧠 정리 한 줄 요약

2차원 배열은 표 형태 데이터를 표현할 때 핵심 도구!
중첩 for문, 행렬 구조 이해, 불규칙 배열까지 알면 배열 마스터!

👉 다음 강의 보기 – 자바 8강: 문자열 완전 정복