배열이란?
배열은 동일한 타입의 여러 값을 저장할 수 있는 자료구조입니다.
Java에서는 배열을 선언하고 초기화하는 방법이 여러 가지가 있으며, 올바르게 사용하지 않으면 예외가 발생할 수 있습니다.
배열 선언 및 초기화
int[] ints1 = new int[5];
int int2[] = new int[5];
- int[] ints1: 타입이 먼저 나오고 변수명이 나오는 형태입니다.
- int int2[]: 변수명 뒤에 대괄호를 붙이는 형태입니다.
타입[] 변수명 부분이 배열을 선언한 부분이고, new 타입[길이] 부분이 초기화한 부분입니다.
위의 코드는 int 타입의 배열을 길이 5로 초기화하여 생성하였다는 의미입니다.
배열 초기화
배열을 초기화할 때 길이를 지정하지 않으면 컴파일 오류가 발생합니다.
그래서 길이를 꼭 지정해줘야 합니다.
배열의 길이는 0 이상의 정수로 지정하면 됩니다.
소수를 넣거나 음수를 넣는 경우 오류가 발생합니다.
다양한 타입의 배열
배열은 다양한 타입으로 만들 수 있습니다.
String[] strings = new String[10];
List[] lists = new List[10];
Object[] objects = new Object[3];
Student[] students = new Student[20]; // 직접 만든 객체
배열 초기화 시 값을 미리 저장하기
만약 배열 값을 미리 정해야 한다면 다음과 같이 초기화할 수 있습니다.
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
int[] numbers2 = { 1, 2, 3, 4, 5 };
사용 예제
배열에 값 넣기
선언한 배열에 값을 넣을 때는 다음과 같은 방법을 사용합니다.
int[] numbers = new int[5];
numbers[0] = 99;
numbers[1] = 98;
numbers[2] = 97;
numbers[10] = 999; // ArrayIndexOutOfBoundsException 발생
만약 선언할 때 설정한 배열 길이를 넘는 인덱스를 사용하면 ArrayIndexOutOfBoundsException이 발생합니다.
길이를 5로 선언했다면 인덱스는 0~4입니다.
반복문을 사용하여 배열에 값 추가
반복문을 사용하여 배열에 값을 추가할 수도 있습니다.
int[] numbers = new int[5];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i;
}
for문을 선언할 때 배열의 길이만큼 반복문을 실행시키면 인덱스 범위를 넘어가지 않게 할 수 있습니다.
배열 출력
배열을 출력하는 방법은 두 가지가 있습니다:
for문을 사용하여 출력
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[" + i + "] = " + numbers[i]);
}
Arrays 클래스의 toString 메소드를 사용하여 출력
import java.util.Arrays;
System.out.println("Arrays.toString(numbers) = " + Arrays.toString(numbers));
전체 코드
// 배열에 값 추가
int[] numbers = new int[5];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i;
}
// for문을 사용하여 배열 값 출력
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[i] = " + numbers[i]);
}
// Arrays 클래스의 toString 메소드를 사용하여 출력
System.out.println("Arrays.toString(numbers) = " + Arrays.toString(numbers));
읽으면 좋은 글
[Java] 2차원 배열 선언 및 초기화, 값 넣기, 동적 할당 방법