자바에서 배열(Array)은 데이터 구조의 기초로, 여러 개의 동일한 데이터 타입을 하나의 변수에 저장할 수 있게 해줍니다. 특정한 타입의 값을 연속적으로 저장하기 위해 활용되는 배열은 프로그래밍에서 매우 중요한 역할을 합니다. 이번 글에서는 자바의 배열 기초 문법과 활용 방법에 대해 자세히 알아보겠습니다.

배열의 기본 개념
배열은 동일한 데이터 타입의 값을 집합적으로 저장할 수 있는 자료형입니다. 이러한 배열은 연속된 메모리 공간에 배치되며, 각 데이터는 고유한 인덱스를 통해 접근할 수 있습니다. 인덱스는 0부터 시작하기 때문에, 배열의 첫 번째 요소는 index 0에 위치하게 됩니다. 배열의 사용을 통해 관련된 데이터를 효율적으로 관리하고 접근할 수 있습니다.
배열 선언 및 초기화
자바에서 배열을 사용하기 위해서는 먼저 배열을 선언하고 초기화해야 합니다. 배열의 선언은 다음과 같이 이루어집니다:
int[] numbers;
위의 코드는 정수형 배열을 선언합니다. 배열의 크기를 정해주지 않으면 공간이 할당되지 않으므로 이를 위해서는 new 키워드를 사용하여 메모리를 할당해야 합니다. 다음은 배열을 생성하고 초기화하는 방법입니다.
int[] numbers = new int[5];
이렇게 하면 정수형 데이터 5개를 저장할 수 있는 배열이 생성됩니다. 배열을 선언하면서 동시에 값을 초기화하고 싶다면, 다음과 같이 할 수 있습니다.
int[] numbers = {10, 20, 30, 40, 50};
배열 데이터 접근 및 출력
배열의 특정 요소에 접근하고 값을 출력하는 방법은 인덱스를 통해 가능합니다. 예를 들어, 배열의 첫 번째 요소에 접근하고 싶다면 다음과 같이 작성합니다.
int firstElement = numbers[0];
또한, 배열의 내용을 출력할 때는 반복문을 사용하여 각 요소를 순회하며 출력할 수 있습니다.
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
위의 예시는 숫자 배열의 모든 요소를 출력하는 코드입니다. 또한, 자바의 Arrays 클래스를 이용하면 배열을 문자열 형식으로 간편하게 출력할 수 있습니다:
System.out.println(Arrays.toString(numbers));
배열 복사하기
배열의 크기를 늘리거나 데이터를 복사해야 할 때가 있습니다. 이 경우, 기존 배열의 데이터를 새로운 배열로 복사해야 합니다. 배열의 복사는 여러 방법으로 수행할 수 있습니다.
- 반복문을 이용한 복사: 기존 배열을 순회하며 값을 하나하나 복사합니다.
- System.arraycopy() 메소드: 효율적으로 배열을 복사하는 메소드입니다.
- Arrays.copyOf() 메소드: 기존 배열을 기반으로 새 배열을 생성합니다.
예를 들어, 다음과 같이 새로운 배열의 크기를 두 배로 늘리고 이전 배열의 값을 복사할 수 있습니다:
int[] original = {1, 2, 3};
int[] newArray = new int[original.length * 2];
System.arraycopy(original, 0, newArray, 0, original.length);
배열 정렬하기
자바에서는 Arrays.sort() 메소드를 사용하여 배열의 요소를 정렬할 수 있습니다. 기본적으로 오름차순으로 정렬되지만, 내림차순 정렬이 필요할 때는 Collections.reverseOrder()를 이용할 수 있습니다. 예를 들어:
int[] values = {5, 3, 8, 1, 2};
Arrays.sort(values);
System.out.println(Arrays.toString(values)); // 오름차순 정렬
내림차순 정렬을 할 경우, 아래와 같이 사용할 수 있습니다:
Integer[] values = {5, 3, 8, 1, 2};
Arrays.sort(values, Collections.reverseOrder());
System.out.println(Arrays.toString(values)); // 내림차순 정렬

다차원 배열
자바에서는 2차원 이상의 배열, 즉 다차원 배열을 생성할 수 있습니다. 2차원 배열은 행(row)과 열(column)로 구성된 테이블 형태로, 각 요소는 두 개의 인덱스를 통해 접근할 수 있습니다. 2차원 배열의 예시는 다음과 같습니다:
int[][] grid = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
각 요소에 접근하기 위해서는 다음과 같이 인덱스를 사용할 수 있습니다:
int value = grid[1][2]; // 6을 얻음
2차원 배열의 내용을 출력하기 위해서는 중첩된 반복문을 활용합니다:
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
System.out.print(grid[i][j] + " ");
}
System.out.println();
}
결론
자바의 배열은 데이터 관리에 있어 매우 유용한 도구입니다. 배열의 선언, 초기화, 데이터 접근 및 다양한 활용 방법을 이해함으로써 프로그래밍의 기초를 다질 수 있습니다. 배열을 올바르게 활용하면 데이터 처리의 효율성을 높이고, 코드의 가독성을 향상시킬 수 있습니다. 이러한 기초적인 개념을 바탕으로 더 복잡한 데이터 구조로 발전해 나가길 바랍니다.
자주 묻는 질문 FAQ
자바 배열이란 무엇인가요?
자바 배열은 동일한 데이터 유형의 여러 값을 그룹으로 묶어 저장할 수 있는 자료형입니다. 이를 통해 연속적으로 관련된 데이터를 효율적으로 관리할 수 있습니다.
배열의 크기는 어떻게 정의하나요?
배열을 생성할 때, 크기를 지정하여 몇 개의 요소를 저장할지 정의할 수 있습니다. 예를 들어, new int[5]는 5개의 정수형 요소를 위한 배열을 만듭니다.
어떻게 배열의 요소에 접근하나요?
배열의 각 요소는 인덱스를 사용하여 접근할 수 있습니다. 첫 번째 요소는 numbers[0]와 같이 인덱스를 통해 얻을 수 있습니다.
배열을 복사하는 방법은 무엇인가요?
배열을 복사하는 방법으로는 반복문을 사용하거나 System.arraycopy() 메소드, 또는 Arrays.copyOf()를 이용하는 방식이 있습니다. 이를 통해 새로운 배열로 기존 데이터를 쉽게 이전할 수 있습니다.
다차원 배열은 어떻게 사용하나요?
다차원 배열은 행과 열로 구성된 배열입니다. 예를 들어 2차원 배열은 grid[행 인덱스][열 인덱스] 형식으로 요소에 접근할 수 있습니다. 이를 통해 복잡한 데이터 구조를 관리할 수 있습니다.