Java/배열

[Java]배열 초기화 방법(Initializing Array)

DevStory 2022. 9. 8.

배열 초기화 방법

Java에서 배열은 동일한 타입의 데이터가 연속적으로 존재하며, 크기가 고정인 데이터입니다.

 

배열을 초기화하는 방법은 간단합니다.

 

다음 소스 코드처럼 new 키워드를 사용하여 선언과 동시에 초기화하거나 또는 new 키워드를 생략할 수 있습니다.

int intArray1[] = new int[] {0, 1, 2, 3};
int intArray2[] = {0, 1, 2, 3};

하지만, 배열의 값을 0부터 1000까지 초기화해야 하는 경우 위 방법을 사용하는 것은 현명하지 않습니다.

 

이번 포스팅은 배열을 초기화하는 몇 가지 방법을 소개합니다.


방법 1. 반복문

배열의 크기를 미리 알고 있으며, 채워야 하는 값도 알고 있다면, 반복문을 사용하여 값을 할당할 수 있습니다.

 

다음 예제는 int 타입의 배열에 0부터 1000까지 값을 할당합니다.

int intArray[] = new int[1001];

for(int index = 0; index < intArray.length; index++) {
  intArray[index] = index;
}

방법 2. Arrays 클래스의 fill 메서드

배열의 크기를 미리 알고 있으며, 동일한 값을 배열에 채워야 한다면, Arrays 클래스에서 제공하는 fill() 메서드를 사용할 수 있습니다.

 

다음 예제는 int 타입의 모든 요소를 10으로 할당합니다.

int intArray[] = new int[10];

Arrays.fill(intArray, 10);

fill() 메서드는 모든 타입의 배열에서 사용할 수 있습니다.


방법 3. Arrays 클래스의 setAll 메서드

배열의 크기를 미리 알고 있으며, 배열에 할당해야 하는 값에 특정 로직이 존재하거나 조건이 존재한다면, Arrays 클래스의 setAll() 메서드를 사용할 수 있습니다.

 

다음 예제는 int 타입의 모든 요소에 2의 배수를 할당합니다.

public static void main(String args[]) {
  int intArray[] = new int[10];

  Arrays.setAll(intArray, num -> num * 2);

  System.out.println(Arrays.toString(intArray));
}

[실행 결과]

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

 

다음 예제는 int 타입의 모든 요소에 2의 배수를 할당하지만, 4으로 나누었을 때 나머지가 0인 경우 0을 할당합니다.

public static void main(String args[]) {
  int intArray[] = new int[10];

  Arrays.setAll(intArray, num -> {
    if((num * 2) % 4 == 0) {
      return 0;
    }
    else {
      return num * 2;
    }
  });

  System.out.println(Arrays.toString(intArray));
}

[실행 결과]

[0, 2, 0, 6, 0, 10, 0, 14, 0, 18]

setAll() 메서드는 모든 타입의 배열에서 사용할 수 있습니다.


방법 4. Stream API

Java의 버전이 1.8 이상인 경우 IntStream 클래스에서 제공하는 range() 메서드를 사용하여 특정 범위의 값으로 배열을 초기화할 수 있습니다.

 

다음 예제는 range() 메서드를 사용하여 0부터 10까지 값을 배열에 할당합니다.

public static void main(String args[]) {
  int intArray[] = IntStream.range(0, 11).toArray();

  System.out.println(Arrays.toString(intArray));
}

 [실행 결과]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
반응형

댓글