프로그래밍에서 데이터를 효율적으로 관리하는 방법 중 하나가 배열(Array) 입니다.
배열을 사용하면 같은 타입의 여러 데이터를 하나의 변수처럼 관리할 수 있습니다.
1. 배열이란?
배열은 같은 타입의 데이터를 연속적으로 저장하는 자료구조입니다.
배열을 사용하면 변수를 여러 개 선언하는 것보다 더 효율적으로 데이터를 관리할 수 있습니다.
배열의 주요 특징
- 데이터를 순차적으로 저장하며, 인덱스(index) 를 통해 접근 가능
- 인덱스는 0부터 시작
- 배열의 크기는 한 번 정해지면 변경할 수 없음
- 중복이 가능하며 같은 값을 배열의 여러 위치에 저장 가능하다.
배열을 사용하지 않는 경우
int korean = 80;
int math = 95;
int english = 85;
배열을 사용하는 경우
int[] scores = new int[3]; // 배열 선언
scores[0] = 80;
scores[1] = 95;
scores[2] = 85;
위처럼 배열을 사용하면 변수 하나로 여러개의 데이터를 관리할 수 있다.
2. 배열 선언 및 초기화
배열을 선언하는 방법은 두 가지가 있습니다.
① new 키워드를 사용한 배열 선언
int[] scores = new int[3];
이렇게 선언하면 기본값으로 초기화됩니다.(크기가 3인 배열 선언)
(정수형은 0, boolean은 false, String은 null)
② 배열 리터럴을 사용한 선언
int[] scores = {80, 95, 85};
이 방법을 사용하면 배열 크기를 따로 지정하지 않아도 자동으로 할당됩니다.
크기를 자동으로 지정하도록 할 수 있습니다.
3. 배열의 길이 확인
배열의 크기를 알기 위해 .length 속성을 사용할 수 있습니다.
int[] scores = {80, 95, 85};
System.out.println(scores.length); // 출력: 3
배열은 크기가 고정되므로, 크기를 동적으로 변경할 수는 없습니다.
4. 배열의 한계점 및 예외처리
배열의 한 가지 중요한 제한 사항은 **"배열의 크기를 초과하여 데이터를 저장할 수 없다"**는 점입니다.
만약 배열의 크기를 초과해서 값을 저장하려 하면 ArrayIndexOutOfBoundsException 오류가 발생합니다.
배열의 크기를 초과한 경우
int[] scores = new int[3]; // 크기가 3인 배열 선언
System.out.println(scores[0]); // 0 (기본값)
System.out.println(scores[1]); // 0 (기본값)
System.out.println(scores[2]); // 0 (기본값)
// 존재하지 않는 인덱스에 접근
System.out.println(scores[3]); // 오류 발생
오류 메시지 예시
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
이 오류는 배열의 길이를 초과하여 인덱스에 접근했을 때 발생합니다.
예외를 방지하는 방법
- 배열 크기를 초과하는 접근을 하지 않도록 주의
→ 루프를 돌릴 때 i < scores.length 조건을 반드시 확인해야 함 - 배열 크기를 동적으로 관리하려면 ArrayList 사용
→ Java의 ArrayList는 크기 제한 없이 동적으로 요소를 추가할 수 있음
예제: ArrayList를 활용하여 크기 초과 방지
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<>();
scores.add(80);
scores.add(95);
scores.add(85);
scores.add(100); // 크기 초과 문제 없음
System.out.println(scores.get(3)); // 정상 출력: 100
}
}
이처럼 ArrayList를 사용하면 배열 크기를 신경쓰지 않고도 데이터 관리가 가능합니다.
5. 배열 vs. ArrayList 비교
항목배열 (Array)ArrayList
| 크기 변경 | 불가능 | 가능 (add() 사용) |
| 타입 | 기본형 및 객체 | 객체만 저장 가능 |
| 초기화 방식 | int[] arr = new int[3]; | ArrayList<Integer> arr = new ArrayList<>(); |
| 속도 | 빠름 | 상대적으로 느림 (내부에서 동적 크기 조정) |
배열은 고정 크기의 데이터를 다룰 때 유리하고, ArrayList는 크기가 가변적인 데이터를 다룰 때 유용합니다.
'웹개발 > JAVA' 카테고리의 다른 글
| Collection Framework (1) | 2025.02.22 |
|---|---|
| Overloading vs Overriding (2) | 2025.02.21 |
| 상속(Inheritance) (0) | 2025.02.19 |
| 제어자(Modifier) (1) | 2025.02.18 |
| 객체 지향 프로그래밍 (1) | 2025.02.17 |