학습
Java 기본 자료구조 (ArrayList)
Java 기본 자료구조 (ArrayList) — 초급
기본 자료구조 (ArrayList)
1. 도입 (왜 배워야 하는가)
Java의 ArrayList는 동적 배열을 구현한 클래스입니다. 이는 데이터의 크기가 고정되지 않아도 되는 유연한 배열 구조를 제공하여, 데이터를 저장하고 관리하는 데 매우 유용합니다. 실무에서는 대량의 데이터를 처리하거나 사용자 입력을 관리할 때 자주 사용됩니다. 예를 들어, 쇼핑몰 애플리케이션에서 사용자 장바구니의 아이템을 관리할 때 ArrayList를 사용하면, 사용자가 추가하거나 제거할 때마다 배열의 크기를 조정할 필요 없이 유동적으로 데이터를 관리할 수 있습니다.
ArrayList를 모르면 데이터의 추가, 삭제, 검색 등의 작업을 효율적으로 처리하는 데 어려움을 겪을 수 있습니다. 이는 결과적으로 애플리케이션의 성능 저하와 사용자 경험의 악화로 이어질 수 있습니다.
2. 핵심 개념 설명
- ArrayList: 자바에서 제공하는 동적 배열 클래스입니다. 배열과 같은 인덱스를 사용하여 요소에 접근할 수 있으며, 크기가 자동으로 조정됩니다.
- 동적 배열: 사용자가 배열의 크기를 명시적으로 지정할 필요 없이, 필요에 따라 자동으로 크기를 조정하는 배열입니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 인덱스 | 배열의 각 요소에 접근하기 위한 숫자입니다. |
| 요소 | 배열에 저장된 데이터의 개별 항목입니다. |
| 크기 | 배열에 저장된 요소의 개수입니다. |
3. 기본 코드 예제
다음은 ArrayList의 기본 사용법을 보여주는 코드입니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// ArrayList 생성
ArrayList<String> fruits = new ArrayList<>();
// 요소 추가
fruits.add("사과");
fruits.add("바나나");
fruits.add("오렌지");
// 요소 출력
System.out.println(fruits);
// 특정 인덱스의 요소 가져오기
String firstFruit = fruits.get(0);
System.out.println("첫 번째 과일: " + firstFruit);
// 요소 삭제
fruits.remove("바나나");
System.out.println("바나나 삭제 후: " + fruits);
}
}
실행 결과
[사과, 바나나, 오렌지]
첫 번째 과일: 사과
바나나 삭제 후: [사과, 오렌지]
코드 한 줄씩 동작 설명
ArrayList<String> fruits = new ArrayList<>();: 문자열을 저장할 수 있는ArrayList를 생성합니다.fruits.add("사과");: "사과"라는 요소를ArrayList에 추가합니다.fruits.add("바나나");: "바나나"라는 요소를 추가합니다.fruits.add("오렌지");: "오렌지"라는 요소를 추가합니다.System.out.println(fruits);: 현재ArrayList의 모든 요소를 출력합니다.String firstFruit = fruits.get(0);: 인덱스 0에 위치한 요소(첫 번째 과일)를 가져옵니다.System.out.println("첫 번째 과일: " + firstFruit);: 가져온 첫 번째 과일을 출력합니다.fruits.remove("바나나");: "바나나"라는 요소를ArrayList에서 삭제합니다.System.out.println("바나나 삭제 후: " + fruits);: 삭제 후의 모든 요소를 출력합니다.ArrayList는 동적 배열로, 데이터의 크기가 유동적인 상황에서 유용하다.- 인덱스를 사용하여 요소에 접근할 수 있으며, 크기가 자동으로 조정된다.
- 실무에서 가장 많이 사용되는 데이터 관리 방식 중 하나이다.
LinkedList:ArrayList와의 차이점 및 사용 사례HashMap: 키-값 쌍으로 데이터를 저장하는 방법- Java 컬렉션 프레임워크의 다른 클래스들 (Set, Queue 등)
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 구현
사용자가 장바구니에 아이템을 추가하고 제거할 수 있는 기능을 구현할 때 ArrayList를 사용할 수 있습니다.
ArrayList<String> cart = new ArrayList<>();
cart.add("티셔츠");
cart.add("바지");
cart.remove("티셔츠");
System.out.println(cart);
예제 2: 학생 목록 관리
학생들의 이름을 저장하고, 특정 학생의 이름을 출력하는 프로그램입니다.
ArrayList<String> students = new ArrayList<>();
students.add("김철수");
students.add("이영희");
System.out.println("학생 목록: " + students);
5. 흔한 실수와 주의사항
실수 1: 인덱스 범위 초과
String fruit = fruits.get(5); // 인덱스 범위를 초과하여 오류 발생
올바른 코드:
String fruit = fruits.get(0); // 인덱스 0은 존재
실수 2: null 요소 추가
ArrayList에 null을 추가할 수 있으나, 이를 잘못 사용하면 NullPointerException이 발생할 수 있습니다.
fruits.add(null); // null 추가
String fruit = fruits.get(3); // 예외 발생
올바른 코드:
fruits.add("사과");