Java에서 배열 초기화

1. 개요

이 빠른 자습서에서는 배열을 초기화 할 수있는 다양한 방법과 이들 사이의 미묘한 차이점을 살펴 보겠습니다.

2. 한 번에 하나의 요소

간단한 루프 기반 방법으로 시작해 보겠습니다.

for (int i = 0; i < array.length; i++) { array[i] = i + 2; }

또한 한 번에 한 요소 씩 다차원 배열을 초기화하는 방법을 살펴 보겠습니다.

for (int i = 0; i < 2; i++) { for (int j = 0; j < 5; j++) { array[i][j] = j + 1; } }

3. 선언 당시

이제 선언 할 때 배열을 초기화 해 보겠습니다.

String array[] = new String[] { "Toyota", "Mercedes", "BMW", "Volkswagen", "Skoda" };

배열을 인스턴스화하는 동안 유형을 지정할 필요가 없습니다.

int array[] = { 1, 2, 3, 4, 5 };

이 방법을 사용하는 선언 후에는 배열을 초기화 할 수 없습니다. 이렇게하면 컴파일 오류가 발생합니다.

4. Arrays.fill () 사용

java.util.Arrays의 클래스는 여러 가지 이름이 방법이 채우기 () 인수의 다른 유형을 적용하고 같은 값으로 전체 배열을 채우기 :

long array[] = new long[5]; Arrays.fill(array, 30);

이 메서드에는 배열의 범위를 특정 값으로 설정하는 몇 가지 대안이 있습니다.

int array[] = new int[5]; Arrays.fill(array, 0, 3, -50);

메서드는 배열, 첫 번째 요소의 인덱스, 요소 수 및 값을 허용합니다.

5. Arrays.copyOf () 사용

Arrays.copyOf () 메서드는 다른 배열을 복사하여 새 배열을 만듭니다. 이 메서드에는 다양한 유형의 인수를 허용하는 많은 오버로드가 있습니다.

간단한 예를 보겠습니다.

int array[] = { 1, 2, 3, 4, 5 }; int[] copy = Arrays.copyOf(array, 5);

여기에 몇 가지 참고 사항 :

  • 이 메서드는 원본 배열과 생성 할 복사본의 길이를 허용합니다.
  • 길이가 복사 할 배열의 길이보다 크면 추가 요소가 기본값을 사용하여 초기화됩니다.
  • 소스 배열이 초기화되지 않은 경우 NullPointerException 이 발생합니다.
  • 소스 배열 길이가 음수이면 NegativeArraySizeException 이 발생합니다.

6. Arrays.setAll () 사용

Arrays.setAll () 메서드 는 생성기 함수를 사용하여 배열의 모든 요소를 ​​설정합니다.

int[] array = new int[20]; Arrays.setAll(array, p -> p > 9 ? 0 : p); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

생성기 함수가 null이면 NullPointerException 이 발생합니다.

7. ArrayUtils.clone () 사용

마지막으로 Apache Commons Lang 3 에서 ArrayUtils.clone () API를 활용 해 보겠습니다.이 API는 다른 배열의 직접 복사본을 만들어 배열을 초기화합니다.

char[] array = new char[] {'a', 'b', 'c'}; char[] copy = ArrayUtils.clone(array);

이 메서드는 모든 기본 형식에 대해 오버로드됩니다.

8. 결론

이 기사에서는 Java에서 배열을 초기화하는 다양한 방법을 살펴 보았습니다.

항상 그렇듯이 코드의 전체 버전은 GitHub에서 사용할 수 있습니다.