배열 초기화 방법
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]
'Java > 배열' 카테고리의 다른 글
[Java]배열 마지막 요소 제거하는 방법 (0) | 2022.09.06 |
---|---|
[Java]배열의 크기를 변경하는 방법 (0) | 2022.09.05 |
[Java]배열을 스트림으로 변환하는 방법(Array to Stream) (0) | 2022.09.02 |
[Java]배열 첫 번째 요소 제거하는 방법 (0) | 2022.09.01 |
[Java]배열 복사하는 방법 (0) | 2022.08.22 |
댓글