Java Arrays
Java Arrays: 자바 배열 가이드
- *배열(Array)**은 동일한 데이터 타입의 여러 값을 하나의 변수에 저장할 수 있는 데이터 구조입니다. 배열은 Java에서 가장 기본적인 자료 구조로, 각 요소가 인덱스를 통해 접근 가능하며, 크기가 고정되어 있습니다. 배열은 동일한 데이터 타입만을 저장할 수 있으며, 한 번 선언되면 크기가 변경되지 않습니다.
이 가이드는 Java에서 배열을 선언하고 사용하는 방법을 설명하며, 다양한 배열 작업을 수행하는 예시를 제공합니다.
1. 배열 선언 및 초기화
배열 선언:
배열을 선언할 때는 데이터 타입과 **대괄호([]
)**를 사용하여 배열임을 표시합니다.
데이터타입[] 배열이름;
배열 초기화:
배열을 선언한 후 크기를 지정하고 초기화할 수 있습니다. 배열의 크기를 지정하면 그 크기만큼의 메모리 공간이 할당됩니다.
배열이름 = new 데이터타입[크기];
배열 선언과 동시에 초기화:
배열을 선언하면서 동시에 초기화할 수 있습니다.
데이터타입[] 배열이름 = new 데이터타입[크기];
사용 예:
public class ArrayExample {
public static void main(String[] args) {
// 배열 선언
int[] numbers = new int[5]; // 크기가 5인 정수형 배열 선언
// 배열 초기화
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
// 배열 요소 출력
for (int i = 0; i < numbers.length; i++) {
System.out.println("배열 요소 " + i + ": " + numbers[i]);
}
}
}
설명:
- 배열 선언:
int[] numbers = new int[5];
는 크기가 5인 정수 배열을 선언합니다. - 배열 초기화: 배열의 각 인덱스에 값을 할당합니다.
- 배열 요소 출력:
for
반복문을 사용하여 배열의 모든 요소를 출력합니다.
2. 배열의 기본값
배열을 생성하면 각 요소는 기본값으로 초기화됩니다:
- 정수형 배열: 0
- 실수형 배열: 0.0
- 문자형 배열:
\\\\u0000
(빈 문자) - 논리형 배열:
false
- 참조형 배열:
null
사용 예:
public class ArrayDefaultValues {
public static void main(String[] args) {
int[] intArray = new int[3]; // 정수형 배열
boolean[] boolArray = new boolean[3]; // 논리형 배열
System.out.println("정수 배열 기본값: " + intArray[0]); // 출력: 0
System.out.println("논리 배열 기본값: " + boolArray[0]); // 출력: false
}
}
3. 배열의 크기
배열의 크기는 고정되어 있으며, 배열을 선언할 때 지정한 크기를 나중에 변경할 수 없습니다. 배열의 크기를 알기 위해
length
속성을 사용할 수 있습니다.
사용 예:
public class ArrayLengthExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("배열의 크기: " + numbers.length); // 출력: 5
}
}
4. 배열 선언과 동시에 값 초기화
배열을 선언할 때 값을 직접 초기화할 수 있습니다. 이를 통해 배열 선언과 초기화를 동시에 할 수 있습니다.
사용 예:
public class ArrayInitialization {
public static void main(String[] args) {
// 배열 선언과 동시에 값 초기화
int[] numbers = {10, 20, 30, 40, 50};
// 배열 요소 출력
for (int num : numbers) {
System.out.println(num);
}
}
}
설명:
- 배열 선언과 초기화:
int[] numbers = {10, 20, 30, 40, 50};
는 값을 바로 초기화하면서 배열을 선언합니다. for-each
문:for (int num : numbers)
는 배열의 각 요소를 순회하며 출력합니다.
5. 다차원 배열 (2차원 배열)
Java에서는 다차원 배열을 사용할 수 있으며, 가장 일반적인 다차원 배열은 2차원 배열입니다. 2차원 배열은 행과 열로 구성된 배열입니다.
2차원 배열 선언:
데이터타입[][] 배열이름 = new 데이터타입[행][열];
사용 예:
public class TwoDimensionalArray {
public static void main(String[] args) {
// 2차원 배열 선언과 초기화
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 2차원 배열 출력
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println(); // 줄 바꿈
}
}
}
설명:
- 2차원 배열:
int[][] matrix
는 행과 열로 구성된 2차원 배열입니다. - 중첩
for
문:for (int i = 0; i < matrix.length; i++)
는 각 행을,for (int j = 0; j < matrix[i].length; j++)
는 각 열을 순회합니다.
출력 결과:
1 2 3
4 5 6
7 8 9
6. 배열 복사
배열을 복사할 때는 직접 복사하거나 System.arraycopy()
메소드를 사용할 수 있습니다.
6.1. 직접 복사
public class ArrayCopyExample {
public static void main(String[] args) {
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.out.println("복사된 배열: ");
for (int num : copy) {
System.out.print(num + " ");
}
}
}
6.2. System.arraycopy()
를 사용한 배열 복사
public class ArrayCopyMethodExample {
public static void main(String[] args) {
int[] original = {1, 2, 3, 4, 5};
int[] copy = new int[original.length];
System.arraycopy(original, 0, copy, 0, original.length);
System.out.println("복사된 배열: ");
for (int num : copy) {
System.out.print(num + " ");
}
}
}
7. 배열 정렬
배열을 정렬할 때는 Arrays.sort()
메소드를 사용할 수 있습니다. 이 메소드는 배열을 오름차순으로 정렬합니다.
사용 예:
import java.util.Arrays;
public class ArraySortExample {
public static void main(String[] args) {
int[] numbers = {30, 10, 40, 20, 50};
// 배열 정렬
Arrays.sort(numbers);
System.out.println("정렬된 배열: ");
for (int num : numbers) {
System.out.print(num + " ");
}
}
}
결과:
정렬된 배열:
10 20 30 40 50
8. 배열의 주요 메소드 (Arrays
클래스)
Java는 배열을 다루기 위한 다양한 유틸리티 메소드를 제공하는 Arrays
클래스를 제공합니다. 주요 메소드는 다음과 같습니다:
주요 메소드:
Arrays.sort(array)
: 배열을 오름차순으로 정렬.Arrays.toString(array)
: 배열을 문자열 형태로 반환.Arrays.fill(array, value)
: 배열을 특정 값으로 채움.Arrays.equals(array1, array2)
: 두 배열이 같은지 비교.
사용 예:
import java.util.Arrays;
public class ArraysUtilityExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
// 배열을 문자열로
변환
System.out.println("배열: " + Arrays.toString(numbers));
// 배열을 특정 값으로 채움
Arrays.fill(numbers, 0);
System.out.println("배열을 0으로 채운 후: " + Arrays.toString(numbers));
}
}
결과:
배열: [1, 2, 3, 4, 5]
배열을 0으로 채운 후: [0, 0, 0, 0, 0]
요약
Java의 배열은 동일한 데이터 타입의 여러 값을 저장할 수 있는 중요한 데이터 구조입니다. 배열은 크기가 고정되며,
인덱스를 통해 각 요소에 접근할 수 있습니다. 또한 다차원 배열, 배열 복사, 배열 정렬 등을 통해 배열을 효율적으로
관리할 수 있습니다. Arrays
클래스는 배열을 다루기 위한 유용한 메소드를 제공하여, 배열 작업을 더욱 간편하게 수행할 수 있습니다.