5.1.7 2차원 정방 행렬 배열 - 3

jh·2022년 1월 24일
0

Do it! 자바 완전 정복

목록 보기
40/70

방법 ③ 배열의 자료형과 함께 대입할 값 입력하기
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();

결과

profile
코딩 공부 중...

0개의 댓글