Study/java

[Java] 2차원 배열 선언 및 초기화, 값 넣기, 동적 할당 방법

 

2차원 배열이란 배열 안에 배열이 있는 형태의 자료구조입니다.

 

선언 및 초기화

자바에서 2차원 배열을 선언하고 초기화하는 방법은 다음과 같습니다.

int[][] matrix = new int[5][2];

 

이 배열은 5개의 행과 2개의 열을 가진 2차원 배열입니다.

만약에 괄호를 3개를 사용한다면 3차원 배열이 됩니다.

그 외에도 괄호를 사용한 개수만큼 n차원 배열로 생성이 됩니다.

 

값 등록, 조회, 삭제

int[][] matrix = new int[2][2];
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[1][0] = 3;
matrix[1][1] = 4;
System.out.println("Arrays.deepToString(matrix) = " + Arrays.deepToString(matrix));

2차원 배열 값 등록 결과
2차원 배열 값 등록 결과

2차원 배열의 각 요소에 접근하려면 인덱스를 2개 사용해야 합니다.

 

값을 넣는 경우 말고도 2차원 배열의 데이터를 조회하거나 삭제하고싶은 경우에도 인덱스로 접근해서 제거하면 됩니다.

// null 사용을 위해 Integer 배열 사용
Integer[][] matrix = new Integer[2][2];
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[1][0] = 3;
matrix[1][1] = 4;
System.out.println("값 제거 전 Arrays.deepToString(matrix) = " + Arrays.deepToString(matrix));

// 값 조회
System.out.println("값 조회 matrix[1][1] = " + matrix[1][1]);

// 값 제거
matrix[0][0] = null;
System.out.println("값 제거 후 Arrays.deepToString(matrix) = " + Arrays.deepToString(matrix));

2차원 배열 데이터 조회, 삭제 결과
2차원 배열 데이터 조회, 삭제 결과

 

 

 

 

동적 할당

2차원 배열에서 각 행의 크기를 동적으로 할당할 수 있습니다.

int[][] matrix = new int[3][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];

예시 코드는 3개의 배열을 가지는 2차원 배열입니다.

각 행의 배열은 서로 다른 길이를 가집니다.

 

배열은 원래는 선언과 동시에 크기를 정해야 컴파일 에러가 나지 않습니다.

만약 배열의 크기를 알 수 없거나 각 행의 배열의 길이가 달라야 하는 경우에는 동적 할당을 유용하게 사용할 수 있습니다.