방법 ③ 배열의 자료형과 함께 대입할 값 입력하기
2차원 정방 행렬의 객체를 생성하는 세 번째 방법은 자료형과 함께 대입할 값을 입력하는 것이다. 여기서는 배열의 크기가 대입되는 초깃값의 수에 따라 결정되므로 대괄호 안에는 반드시 크기를 지정하지 말아야한다.
🍁배열의 자료형과 함께 대입할 값 입력하기
자료형[][] 참조 변수명 = new 자료형[][] {값, 값, ..., 값}, ..., {값, 값, ..., 값} ;
이 때 배열의 길이는 쓰지 않음 0번째 행 데이터 마지막 행 데이터
예
int[][] a; = new int[][] {{1, 2, 3},{4, 5, 6}};
1차원 배열과 동일한 형태이며 차이점은 초깃값을 구성할 때 중괄호 안에 각각의 중괄호를 넣어 각 행의 데이터를 표현한다는 것이다. 최종적으로 메모리에 저장되는 값은 앞의 2가지 방법과 동일하다. 또한 초깃값과 함께 자료형을 표현하는 방법 ③은 다음과 같이 선언과 객체의 대입을 분리해 표현할 수 있다.
🍁배열의 선언과 객체의 대입을 분리해 표현 가능
int[][]a= new int[][]{{1, 2, 3}, {4, 5, 6}}; // 0
int[][]b;
b = new int[][]{{1, 2, 3}, {4, 5, 6}}; // 0
방법 ④ 대입할 값만 입력하기
마지막 방법은 2차원 정방 행렬 데이터에 대입할 값만 입력하는 방법이다. 이 역시 1차원 배열과 동일한 방식에 중괄호만 이중으로 추가된 형태이므로 쉽게 이해할 수 있을 것이다.
🍁대입할 값만 입력하기
자료형[][] 참조 변수명 = {{값, 값, ..., 값}, ..., {값, 값, ..., 값}} ;
0번째 행 데이터 마지막 행 데이터
예
int[][] a = {{1, 2, 3}, {4, 5, 6}};
역시 메모리에 저장되는 값은 앞의 방법과 동일하다. 가장 간단한 형태이지만 방법 ④는 선언과 값의 대입을 분리할 수 없으며 선언과 동시에 값을 대입할 때만 사용할 수 있다.
🍁배열의 선언과 객체의 대입을 분리해 표현 불가능
int[][] a = {{1, 2, 3}, {4, 5, 6}}; // 0
int[][] b;
b = {{1, 2, 3}, {4, 5, 6}}] // X
// 배열 객체의 생성 및 원소 값 대입 (방법 1)
int[][] array1 = new int[2][3];
array1[0][0] = 1;
array1[0][1] = 2;
array1[0][2] = 3;
array1[1][0] = 4;
array1[1][1] = 5;
array1[1][2] = 6;
System.out.println(array1[0][0] + " " + array1[0][1] + " " + array1[0][2] + " ");
System.out.println(array1[1][0] + " " + array1[1][1] + " " + array1[1][2] + " ");
System.out.println();
int[][] array2;
array2 = new int[2][3];
array2[0][0] = 1;
array2[0][1] = 2;
array2[0][2] = 3;
array2[1][0] = 4;
array2[1][1] = 5;
array2[1][2] = 6;
System.out.println(array2[0][0] + " " + array2[0][1] + " " + array2[0][2] + " ");
System.out.println(array2[1][0] + " " + array2[1][1] + " " + array2[1][2] + " ");
System.out.println();
// 배열 객체의 생성 및 원소 값 대입(방법 2)
int[][] array3 = new int[][] {{1, 2, 3}, {4, 5, 6}};
System.out.println(array3[0][0] + " " + array3[0][1] + " " + array3[0][2] + " ");
System.out.println(array3[1][0] + " " + array3[1][1] + " " + array3[1][2] + " ");
System.out.println();
int [][] array4;
array4 = new int[][] {{1, 2, 3}, {4, 5, 6}};
System.out.println(array4[0][0] + " " + array4[0][1] + " " + array4[0][2] + " ");
System.out.println(array4[1][0] + " " + array4[1][1] + " " + array4[1][2] + " ");
System.out.println();
// 배열 객체의 생성 및 원소 값 대입 (방법 3)
int[][] array5 = {{1, 2, 3} , {4, 5, 6}};
System.out.println(array5[0][0] + " " + array5[0][1] + " " + array5[0][2] + " ");
System.out.println(array5[1][0] + " " + array5[1][1] + " " + array5[1][2] + " ");
System.out.println();
결과