JAVA/JAVA

Java | 다차원 배열_이차원 배열

pathas 2020. 1. 29. 17:45

다차원 배열_이차원 배열

배열의 리스트가 배열로 이루어진 표(면)의 형태를 갖는 배열

배열의 첫 번째 리스트를 이라고 하고,
각 행에 해당하는 배열을 이라고 함


고정배열

행과 열의 개수가 정해져 있는 배열

자료형 [][] 배열명 = new 자료형[개수][개수]

가변배열

행의 개수는 정해져 있지만, 열의 개수는 정해져 있지 않은 배열

행의 개수가 정해져 있지 않은 배열은 생성할 수 없음

자료형 [][] 배열명 = new 자료형[개수][]

초기화

// 배열을 생성한 후 초기화 하는 경우, 불편하기 때문에 자주 사용되지 않음
자료형 [][] 배열명 = new 자료형[2][2]
배열명[0][0] = 값1, 배열명[0][1] = 값2, 배열명[1][0] = 값3, 배열명[1][1] = 값4

// 생성과 동시에 초기화, 동시에 초기화하는 경우 행/열 개수를 임의로 설정 가능
자료형 [][] 배열명 = {{값1, 값2, 값3},{값4, 값5}, {값7},,,}

사용례

package j200129;

public class DoubleArray {

    public static void main(String[] args) {
        // int형 이차원 배열 array 생성 및 초기화
        int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

         // array 배열의 행 값 출력
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
         //  행의 주소값이 출력됨 -> 열의 리스트가 저장되어 있는 주소를 알려줌
        /*
        [I@15db9742
        [I@6d06d69c
        [I@7852e922
         */

         // array 배열의 행에 저장된 각각의 열 값 출력
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.println("array2[" + i + "][" + j + "]: " + array[i][j]);
            }
         }
         /*
         array2[0][0]: 1
         array2[0][1]: 2
         array2[0][2]: 3
         array2[1][0]: 4
         array2[1][1]: 5
         array2[1][2]: 6
         array2[2][0]: 7
         array2[2][1]: 8
         array2[2][2]: 9
         */
    }

}

확장 for문_이차원 배열

형식

for(1차원 배열 자료형 배열명[]:2차원 배열명){
    for(1차원 배열 자료형 변수명: 1차원 배열명){
        // Java Code;
    }
}

사용례

package j200129;

public class DoubleArray {

    public static void main(String[] args) {

        int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

		// 2차원 배열 내의 각각의 행을 임시로 1차원 배열 tmp[]에 할당
        for (int tmp[] : array) { 
        	// 1차원 배열 tmp[]의 각각의 요소를 임시로 변수 val에 할당
            for (int val : tmp) { 
                System.out.print(val + "\t");
            }
            System.out.println();
        }
        /*
        1    2    3    
        4    5    6    
        7    8    9    
        */
    }

}

배열의 리스트가 또 배열로 이루어져 있는 이차원 배열에 대해 살펴보았습니다.

이차원 배열의 경우 표를 연상하면 조금 더 이해하기가 수월할 것입니다.

다차원 배열에서 이차원 배열까지는 많이 사용된다고 하기 때문에

이차원 배열의 구조와 기본적인 사용법에 대해서는 알아두는 것이 좋겠습니다.