🧠 개념 설명
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문, 행렬 구조 이해, 불규칙 배열까지 알면 배열 마스터!