본문 바로가기
백엔드/Java

[Java]#13 배열(2차원)

by 쁘띠뀨띠 2023. 12. 18.

1_2차원 배열

package array;

public class ArrayDi0 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행2, 열3

        arr[0][0] = 1; // 0행 0열
        arr[0][1] = 2; // 0행 1열
        arr[0][2] = 3; // 0행 2열
        arr[1][0] = 4; // 1행 0열
        arr[1][1] = 5; // 1행 1열
        arr[1][2] = 6; // 1행 2열

//        0행 출력
        System.out.print(arr[0][0] + " "); // 0행 0열
        System.out.print(arr[0][1] + " "); // 0행 1열
        System.out.println(arr[0][2] + " "); // 0행 2열
//        1행 출력
        System.out.print(arr[1][0] + " "); // 1행 0열
        System.out.print(arr[1][1] + " "); // 1행 1열
        System.out.print(arr[1][2] + " "); // 1행 2열
    }
//
//        1 2 3
//        4 5 6
}

- int [] [] 변수이름 = new int[행의 수][열의 수]와 같이 선언하고 생성한다.

- 변수이름[행][열] 과 같이사용하는데, 먼저 행 번호를 찾고 열번호를 찾는다.

 

2_배열 리펙토링

package array;

public class ArrayDi1 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행2, 열3

        arr[0][0] = 1; // 0행 0열
        arr[0][1] = 2; // 0행 1열
        arr[0][2] = 3; // 0행 2열
        arr[1][0] = 4; // 1행 0열
        arr[1][1] = 5; // 1행 1열
        arr[1][2] = 6; // 1행 2열

        for (int row = 0; row < 2; row++) {
            System.out.print(arr[row][0] + " "); // row 0열
            System.out.print(arr[row][1] + " "); // row 1열
            System.out.println(arr[row][2] + " "); // row 2열
        }
    }
//
//        1 2 3
//        4 5 6
}

 

package array;

public class ArrayDi2 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = new int[2][3]; // 행2, 열3

        arr[0][0] = 1; // 0행 0열
        arr[0][1] = 2; // 0행 1열
        arr[0][2] = 3; // 0행 2열
        arr[1][0] = 4; // 1행 0열
        arr[1][1] = 5; // 1행 1열
        arr[1][2] = 6; // 1행 2열

        for (int row = 0; row < 2; row++) {
            for (int colum = 0; colum < 3; colum++) {
                System.out.print(arr[row][colum] + " "); // row행 colum열
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }
    }
//
//        1 2 3
//        4 5 6
}

- 이중 for문 사용, 첫번째 for문은 행을 탐색하고 두번째 for문은 열을 탐색한다.

package array;

public class ArrayDi3 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = {
            {1,2,3},
            {4,5,6}
        }; // 행2, 열3

        for (int row = 0; row < arr.length; row++) { // 쉼표 기준으로 {}2개
            for (int colum = 0; colum < arr[row].length; colum++) {
                System.out.print(arr[row][colum] + " "); // row행 colum열
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }
    }
//
//        1 2 3
//        4 5 6
}

- arr.length는 행의 길이를 뜻한다. inr[][] arr = {}안의 쉼표(,)기준으로 행{}를 2개 가지고 있다.

- arr[row].length는 열의 길이를 뜻한다. 위 예시는 { {1,2,3}, {4,5,6} } 각 열마다 3개의 요소가 있다.

 

3_배열 생성과 변수 초기화 (변수 선언 간단하게)

package array;

public class ArrayDi3 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = {
            {1,2,3},
            {4,5,6}
        }; // 행2, 열3
        
        for (int row = 0; row < 2; row++) {
            for (int colum = 0; colum < 3; colum++) {
                System.out.print(arr[row][colum] + " "); // row행 colum열
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }
    }
//
//        1 2 3
//        4 5 6
}

- int[][] = new int [행][열]; 생략 가능 → int[][] arr = { {} , {} }; 과 같이 초기화 가능, (new int[행][열]; 생략)

 

4_구조 개선

package array;

public class ArrayDi4 {
    public static void main(String[] args) {
//        2x3 2차원 배열을 만든다.
        int[][] arr = new int[3][3];// 행2, 열3

        int i = 1;
        for (int row = 0; row < arr.length; row++) {
            for (int colum = 0; colum < arr[row].length; colum++) {
                arr[row][colum] = i++;
//                System.out.println(i);
            }
//            System.out.println("");
        }

        for (int row = 0; row < arr.length; row++) { // 쉼표 기준으로 {}2개
            for (int colum = 0; colum < arr[row].length; colum++) {
                System.out.print(arr[row][colum] + " "); // row행 colum열
            }
            System.out.println(); // 한 행이 끝나면 라인을 변경한다.
        }
    }
//
//        1 2 3
//        4 5 6
}

'백엔드 > Java' 카테고리의 다른 글

[Java]#15 Method  (0) 2023.12.20
[Java]#14 향상된 For  (0) 2023.12.18
[Java]#12 배열(1차원)  (1) 2023.12.18
[Java]#11 Scanner  (0) 2023.12.16
[Java]#10 형변환, 스코프  (0) 2023.12.16