자바에서 부울(Boolean) 배열은 boolean 타입의 값만 저장할 수 있으며, 배열을 생성하면 모든 요소가 기본값인 false로 자동 초기화됩니다. 반면 참조 타입(reference type) 배열은 각 요소가 null로 초기화됩니다.
경우에 따라 부울 배열의 모든 값을 true 또는 false로 한꺼번에 초기화해야 할 필요가 있습니다. 이럴 때 Arrays.fill() 메서드를 활용하면 반복문 없이 간단하게 처리할 수 있습니다.
구문
boolean[] booleanArray;
예제
import java.util.Arrays;
public class BooleanArrayTest {
public static void main(String[] args) {
Boolean[] boolArray = new Boolean[5]; // 부울 배열 생성
// 초기 상태 출력 (참조 타입이므로 null로 초기화됨)
for (int i = 0; i < boolArray.length; i++) {
System.out.println(boolArray[i]);
}
// 모든 값을 false로 초기화
Arrays.fill(boolArray, Boolean.FALSE);
for (int i = 0; i < boolArray.length; i++) {
System.out.println(boolArray[i]);
}
// 모든 값을 true로 초기화
Arrays.fill(boolArray, Boolean.TRUE);
for (int i = 0; i < boolArray.length; i++) {
System.out.println(boolArray[i]);
}
}
}
출력 결과
null null null null null false false false false false true true true true true
코드 설명
위 예제에서는 Boolean[] 래퍼 클래스 배열을 사용했기 때문에 배열을 생성한 직후에는 각 요소가 null로 초기화됩니다. 이후 Arrays.fill(boolArray, Boolean.FALSE)를 호출하면 배열의 모든 요소가 false로 채워지고, Arrays.fill(boolArray, Boolean.TRUE)를 호출하면 모든 요소가 true로 변경됩니다.
만약 기본 타입인 boolean[] 배열을 사용한다면, 생성 시점부터 모든 요소가 자동으로 false로 초기화되므로 별도의 초기화 과정 없이 바로 사용할 수 있다는 점도 참고하시기 바랍니다.