ArrayList

sungs·2025년 6월 8일

자바

목록 보기
10/95

✅ ArrayList란?

ArrayList는 자바에서 제공하는 동적 배열(Dynamic Array).
기존 배열(Array)과 다르게 크기를 정하지 않아도 되고, 요소를 자유롭게 추가하거나 제거할 수 있다.

  • java.util 패키지에 포함

  • 내부적으로 배열을 사용하지만, 자동으로 크기를 조절함

  • 순차적 데이터 저장에 적합

📦 ArrayList 선언 및 초기화

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 기본 선언
        ArrayList<String> list = new ArrayList<>();

        // 초기값 추가
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");

        System.out.println(list); // [Apple, Banana, Cherry]
    }
}

🧩 주요 메서드 정리

메서드설명
add(E e)요소 추가
add(int index, E e)특정 위치에 요소 추가
get(int index)특정 위치의 요소 반환
set(int index, E e)특정 위치의 요소 변경
remove(int index)특정 위치의 요소 제거
remove(Object o)특정 객체 제거
size()요소 개수 반환
isEmpty()리스트가 비어있는지 확인
contains(Object o)특정 요소가 있는지 확인
clear()모든 요소 제거

🎯 사용 예시

1. 반복문으로 순회하기

ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");

// 일반 for문
for (int i = 0; i < fruits.size(); i++) {
    System.out.println(fruits.get(i));
}

// 향상된 for문 (for-each)
for (String fruit : fruits) {
    System.out.println(fruit);
}

2. 정렬하기

import java.util.Collections;

ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(1);
numbers.add(3);

Collections.sort(numbers); // 오름차순 정렬
System.out.println(numbers); // [1, 3, 5]

⚠️ 주의할 점

  • ArrayList는 스레드에 안전하지 않음
    → 멀티스레드 환경에서는 Vector 또는 Collections.synchronizedList() 사용 고려

  • 중간에 요소를 삽입/삭제하면 성능이 떨어질 수 있음 (뒤 요소들을 전부 이동시켜야 하므로)

  • 기본 타입(int, double 등)은 사용할 수 없음 → Integer, Double과 같은 래퍼 클래스를 사용해야 함

🔄 Array vs ArrayList

구분배열(Array)ArrayList
크기고정동적
타입기본타입 가능객체만 가능
메서드거의 없음다양한 메서드 제공
성능빠름상대적으로 느림

🧠 마무리

ArrayList는 리스트 형태의 데이터를 다룰 때 거의 필수적으로 사용하는 자료구조이다.
특히, 요소의 개수가 유동적일 때 매우 유용하며, 다양한 메서드를 통해 쉽게 데이터를 조작할 수 있다.

profile
앱 개발 공부 중

0개의 댓글