2차원 배열

Hwani·2024년 8월 27일

개념

쉽게 말해서 행과 열이 있는 표 형식의 배열 데이터이다.

2차원 배열 선언하는 법

int[][] arr = new int[2][3]

데이터 타입 + [][] + 변수명 = new 데이터 타입 + [행][열]

행 = row
열 =column

*변수명에는 참조값이 생성 된다.

사용 예제

package array;

public class arrayDIO {
    public static void main(String[] args) {
        int[][] arr = new int[2][3];

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

        System.out.print(arr[0][0]);
        System.out.print(arr[0][1]);
        System.out.print(arr[0][2]);
        System.out.println();

        System.out.print(arr[1][0]);
        System.out.print(arr[1][1]);
        System.out.print(arr[1][2]);
    }
}

리팩토링1(row)

public class arrayDIO2 {
    public static void main(String[] args) {
        int[][] arr = new int[2][3];

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

        for (int row = 0; row<2; row++) {
            System.out.print(arr[row][0]);
            System.out.print(arr[row][1]);
            System.out.print(arr[row][2]);
            System.out.println();
        }
    }
}

리팩토링(column)


처음으로 이중for문이라는 걸 사용했다.
경우의 수 라고 생각하면 쉽다.
첫번째 for문의 경우의 수는 2
두번째 for문의 경우의 수는 3
0-0,0-1,0-2 //두번째 for문 탈출
1-0,1-1,1-2 //두번째 for문 탈출
첫번째 for문 탈출!

초기화

지금은 행 갯수 열 갯수 선언
변수 마다 값 지정

이 걸 한번에 처리할 수 있다.

배열의 길이

지금은 for문에서 행과 열의 길이를 정수로 지정을 한다.
만약 행과 열의 값이 더 많아지면 for문안의 행과 열의 길이도
변경을 해줘야하는 일이 생긴다.

이런일이 발생하지않게 코드를 작성할 수 있다.

arr.length는 {}의 갯수를 센다.
arr[row].length는 arr의 행 안의 갯수를 센다.

정해진 행과 열에 일정 수만큼 증가하는 2차원 배열 만들기

package array;

public class arrayDIO5 {
    public static void main(String[] args) {
        int[][] arr = new int[5][3];


        int i = 1;

        for (int row = 0; row < arr.length; row++) {
            for (int column = 0; column < arr[row].length; column++) {
                arr[row][column] = i++;
            }
        }


        for (int row = 0; row<arr.length; row++) {
            for (int column = 0; column<arr[row].length; column++) {
                System.out.print(arr[row][column]);
            }
            System.out.println();
        }
    }
}

각 행과열에
int i 에 지정한 숫자만큼 값이 증가하는 코드이다.

0개의 댓글