2차원 배열
- 행과 열로 이루어진 테이블 형태로 데이터를 저장하기 위한 배열
2차원 배열 선언과 초기화
// 1번
int[][] nNum = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
// 1-1번
int[][] nNum1 = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 2번
int[][] nNum2 = new int[][] { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
2차원 배열 반복문을 이용한 초기화
public void method1() {
int[][] szArr1 = new int[3][5];
int nNum = 1;
for(int i = 0; i < szArr1.length; i++) {
for(int j = 0; j < szArr1[i].length; j++) {
szArr1[i][j] = nNum++;
System.out.printf("%2d ", szArr1[i][j]);
}
System.out.println();
}
}
출력문
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
2차원 배열 인덱스
- 행과 열 의 인덱스는 0부터 시작한다.
- nNum ➡ nNum[0] ➡ nNum[0][0], nNum[0][1], nNum[0][2]
- ➡ nNum[1] ➡ nNum[1][0], nNum[1][1], nNum[1][2]
- ➡ nNum[2] ➡ nNum[2][0], nNum[2][1], nNum[2][2]
nNum[0][0] = 1 |
nNum[0][1] = 2 |
nNum[0][2] = 3 |
nNum[1][0] = 4 |
nNum[1][1] = 5 |
nNum[1][2] = 6 |
nNum[2][0] = 7 |
nNum[2][1] = 8 |
nNum[2][2] = 9 |
2차원 배열 행, 열의 길이 출력
public void method1() {
int[][] szArr1 = new int[3][5];
System.out.printf("szArr1 Row Length: %d\n", szArr1.length);
System.out.println();
System.out.println("szArr1[0] Column Length: " + szArr1[0].length);
System.out.println("szArr1[1] Column Length: " + szArr1[1].length);
System.out.println("szArr1[2] Column Length: " + szArr1[2].length);
}
출력물
szArr1 Row Length: 3 // szArr1[0], szArr1[1], szArr1[2]
szArr1[0] Column Length: 5 // szArr1[0][0], szArr1[0][1], szArr1[0][2], szArr1[0][3], szArr1[0][4]
szArr1[1] Column Length: 5 // szArr1[1][0], szArr1[1][1], szArr1[1][2], szArr1[1][3], szArr1[1][4]
szArr1[2] Column Length: 5 // szArr1[2][0], szArr1[2][1], szArr1[2][2], szArr1[2][3], szArr1[2][4]
2차원 배열 모든 요소 출력
public void method2() {
int[][] nData = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for(int i = 0; i < nData.length; i++) {
for(int j = 0; j < nData[i].length; j++) {
System.out.printf("nData[%d][%d] = %d\n", i, j, nData[i][j]);
}
}
}
출력물
nData[0][0] = 1
nData[0][1] = 2
nData[0][2] = 3
nData[1][0] = 4
nData[1][1] = 5
nData[1][2] = 6
nData[2][0] = 7
nData[2][1] = 8
nData[2][2] = 9