배열은 같은 타입의 데이터를 여러 개 저장할 수 있는 자료 구조입니다. Java에서 배열은 중요한 데이터 구조 중 하나로, 데이터가 연속된 메모리 공간에 저장됩니다. 배열은 일반 변수가 하나의 값만 저장할 수 있는 것과 달리, 여러 개의 값을 저장할 수 있습니다.
1차원 배열은 선형 구조로, 같은 타입의 데이터를 연속적으로 저장합니다. 배열의 선언과 초기화 방법은 다음과 같습니다:
// 배열 선언 int[] arr = new int[5]; // 길이가 5인 int형 배열 선언 및 할당 // 배열 초기화 arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; // 배열 선언과 동시에 초기화 int[] arr = {1, 2, 3, 4, 5};
배열의 각 요소는 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작합니다.
배열의 요소를 출력하려면 반복문을 사용할 수 있습니다:
for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); }
2차원 배열은 배열 안에 배열이 있는 구조로, 행과 열의 형태를 가집니다. 2차원 배열은 다음과 같이 선언하고 초기화할 수 있습니다:
// 2차원 배열 선언 int[][] arr = new int[3][4]; // 3행 4열의 2차원 배열 선언 및 할당 // 2차원 배열 초기화 arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[0][3] = 4; arr[1][0] = 5; arr[1][1] = 6; arr[1][2] = 7; arr[1][3] = 8; arr[2][0] = 9; arr[2][1] = 10; arr[2][2] = 11; arr[2][3] = 12;
2차원 배열의 요소를 출력하려면 중첩된 반복문을 사용할 수 있습니다:
for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); }
가변 배열은 각 행의 열 크기가 다른 배열을 말합니다. 가변 배열을 선언하고 초기화하는 방법은 다음과 같습니다:
int[][] arr = new int[3][]; arr[0] = new int[2]; // 첫 번째 행에 2개의 열 arr[1] = new int[3]; // 두 번째 행에 3개의 열 arr[2] = new int[4]; // 세 번째 행에 4개의 열
배열을 복사하는 방법에는 여러 가지가 있습니다. 대표적으로는 System.arraycopy 메서드를 사용할 수 있습니다.
int[] original = {1, 2, 3, 4, 5}; int[] copy = new int[original.length]; // 깊은 복사 for (int i = 0; i < original.length; i++) { copy[i] = original[i]; } // System.arraycopy를 사용한 깊은 복사 System.arraycopy(original, 0, copy, 0, original.length);