2차원 배열
===== 1차원 배열 =====
//int[] subject_arr = new int[5]; // 1행 5열
---------------------
| 0 | 0 | 0 | 0 | 0 |
---------------------
index => 0 1 2 3 4
===== 2차원 배열 =====
값 -------------
| 0 | 0 | 0 |
-------------
| 0 | 0 | 0 |
-------------
| 0 | 0 | 0 |
-------------
| 0 | 0 | 0 |
-------------
index => ----------------------------
| [0][0] | [0][1] | [0][2] |
----------------------------
| [1][0] | [1][1] | [1][2] |
----------------------------
| [2][0] | [2][1] | [2][2] |
----------------------------
| [3][0] | [3][1] | [3][2] |
----------------------------
public class Main_twoDimension_01 {
public static void main(String[] args) {
int[][] point_arr = new int[4][3];
point_arr[0][0] = 10;
point_arr[0][1] = 20;
point_arr[0][2] = 30;
point_arr[1][0] = 40;
point_arr[1][1] = 50;
point_arr[1][2] = 60;
point_arr[2][0] = 70;
point_arr[2][1] = 80;
point_arr[2][2] = 90;
point_arr[3][0] = 100;
point_arr[3][1] = 110;
point_arr[3][2] = 120;
System.out.println("point_Arr.length => " + point_arr.length);
// point_Arr.length => 4
// 이차원배열명.length 은 행의 길이가 나온다.
System.out.println("point_Arr.length => " + point_arr[0].length);
// point_Arr.length => 3
// 이차원배열명[행의인덱스].length 은 그 행에 존재하는 열의 길이가 나온다.
이때, 열의 크기를 설정하지 않으면 NullPointerException 이 발생한다.
public class Main_twoDimension_02 {
public static void main(String[] args) {
int[][] num_arr = new int[4][]; // 4행 null열
// 열의 크기를 설정하지 않으면 NullPointerException 이 발생한다.
num_arr[0] = new int[3];// 0행은 3열로 설정함.
num_arr[1] = new int[2];// 1행은 3열로 설정함.
num_arr[2] = new int[4];// 2행은 3열로 설정함.
num_arr[3] = new int[3];// 3행은 3열로 설정함.
num_arr[0][0] = 10;
num_arr[0][1] = 20;
num_arr[0][2] = 30;
num_arr[1][0] = 40;
num_arr[1][1] = 50;
// num_arr[1][2] = 60; // 존재하지 않기 때문에 ArrayIndexOutOfBoundsException 이 발생함.
num_arr[3][0] = 70;
num_arr[3][1] = 80;
for(int i=0; i<num_arr.length; i++) { // 행
for(int j=0; j<num_arr[i].length; j++) {
String str = (j<num_arr[i].length-1)? "," : "\n";
System.out.printf("%2d%s", num_arr[i][j],str);
} // end of for
} // end of for
/*
10,20,30
40,50
0, 0, 0, 0
70,80, 0
*/
System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
int[][] num_arr_2 = {{10,20,30}, // int[][] num_arr_2 = new int[][] {{10,20,30},
{40,50}, // new int[][] 는 생략 가능
{0,0,0,0},
{70,80,0}};
/*
또는
int[][] num_arr_2 = new int[][]{{10,20,30},
{40,50},
{0,0,0,0},
{70,80,0}};
*/
for(int i=0; i<num_arr_2.length; i++) { // 행
for(int j=0; j<num_arr_2[i].length; j++) {
String str = (j<num_arr_2[i].length-1)? "," : "\n";
System.out.printf("%2d%s", num_arr_2[i][j],str);
} // end of for
} // end of for
/*
10,20,30
40,50
0, 0, 0, 0
70,80, 0
*/
} // end of main()
}