ArrayList란?
- Java의
List
인터페이스를 구현한 가변 길이 배열 클래스
- 내부적으로는 배열(
Object[]
)을 사용하지만, 자동으로 크기를 늘려줌
- 순서 유지 (
index
로 관리), 중복 허용
- 삽입, 삭제, 검색 등의 다양한 메서드를 제공
선언과 초기화
import java.util.ArrayList;
import java.util.List;
List<String> list = new ArrayList<>();
List
로 선언하고 ArrayList
로 생성하는 건 다형성(유연성)을 위한 일반적인 패턴이야.
- 제네릭 사용 필수:
List<Integer>
, List<User>
등
주요 메서드
메서드 |
설명 |
add(E e) |
맨 뒤에 요소 추가 |
add(int index, E e) |
특정 위치에 삽입 |
get(int index) |
요소 읽기 |
set(int index, E e) |
요소 수정 |
remove(int index) |
인덱스로 삭제 |
remove(Object o) |
값으로 삭제 |
size() |
요소 개수 |
clear() |
전체 비우기 |
contains(Object o) |
값 존재 여부 확인 |
isEmpty() |
비었는지 확인 |
4. 사용 예제
import java.util.*;
public class ArrayListExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
// 추가
fruits.add("사과");
fruits.add("바나나");
// 삽입
fruits.add(1, "포도");
// 출력
for (String fruit : fruits) {
System.out.println(fruit);
}
// 수정
fruits.set(0, "딸기");
// 삭제
fruits.remove("포도");
System.out.println("첫 번째 과일: " + fruits.get(0));
System.out.println("전체 과일 개수: " + fruits.size());
}
}
5. 내부 동작 구조
ArrayList
는 내부적으로 Object[]
배열을 사용
- 초기 용량은 10개 (
new ArrayList<>()
)
- 요소가 넘치면 → 더 큰 배열을 만들어 복사 (
capacity * 1.5
)
- 그래서 많이 추가하면 비용(성능)이 발생할 수 있음