ArrayList란?
ArrayList는 자바의 컬렉션 프레임워크(Collection Framework)에서 제공하는 동적 배열(Dynamic Array) 자료구조로, 배열과 유사하게 연속된 메모리 공간에 원소를 저장한다. 하지만 ArrayList는 크기가 가변적으로 조절되며, 다양하고 유용한 메서드를 제공하여 원소 추가, 삭제, 검색, 정렬 등의 작업을 쉽게 수행할 수 있다.
ArrayList는 크기가 동적으로 조절된다. 초기에는 원소가 없는 상태에서 원소를 추가하면 ArrayList는 크기를 자동으로 증가시킨다.
ArrayList의 각 원소는 인덱스로 접근할 수 있으며, 인덱스는 0부터 시작한다. 예를 들어, myList.get(0)은 첫 번째 원소를 반환한다.
ArrayList는 제네릭 타입을 지원하여, 원하는 데이터 타입의 원소를 저장할 수 있다. 예를 들어, ArrayList< Integer>은 정수를 저장하는 ArrayList를 생성한다.
내부적으로 배열을 사용하기 때문에 데이터를 배열 형태로 메모리에 저장한다. 이로 인해 인덱스를 통한 빠른 액세스가 가능하며, 배열의 특성을 그대로 이용한다.
add() 메서드를 사용하여 ArrayList에 원소를 추가하고, remove() 메서드를 사용하여 원소를 삭제할 수 있다.
ArrayList<String> myList = new ArrayList<>();
myList.add("사과");
myList.add("바나나");
myList.remove("사과");
ArrayList의 size() 메서드는 현재 원소 개수를 반환하며, ensuerCapacity() 메서드를 사용하여 용량을 명시적으로 조절할 수 있다.
for-each 루프나 반복자(Iterator)를 사용하여 ArrayList의 원소를 순회할 수 있다.
for (String item : myList) {
System.out.println(item);
}
contains() 메서드로 원소의 존재 여부를 확인하고, sort() 메서드로 정렬할 수 있다.
boolean containsBanana = myList.contains("바나나");
Collections.sort(myList); // 정렬
ArrayList는 일반적으로 순차적인 데이터 접근 및 간단한 데이터 관리에 유용하며, 자주 변경되는 데이터에 대한 저장 및 검색 작업에도 효과적이다. 그러나 빈번한 중간 삽입 또는 삭제 작업에는 부적합할 수 있으며, 이 경우에는 LinkedList와 같은 다른 자료구조를 고려해야 한다.