특징
- 요소의 저장 순서가 유지된다.
- 같은 요소의 중복 저장을 허용한다.
ArrayList<E> 클래스
- 내부적으로 배열을 이용하여 요소를 저장한다. 배- 열을 이용하기 때문에 인덱스를 이용해 배열 요소에 빠르게 접근할 수 있다.
- 배열은 크기를 변경할 수 없는 인스턴스다.
- 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 하는 복잡한 과정을 거쳐야 한다.
- 자동으로 수행되는 과정이지만 요소의 추가 및 삭제 작업에 걸리는 시간이 매우 길어진다.
- JDK 1.2부터 제공
- 사용 예시
LinkedList<E> 클래스
- 내부적으로 연결 리스트(linked list)를 이용하여 요소를 저장한다.
- 배열은 저장된 요소가 순차적으로 저장된다.
- 저장된 요소가 비순차적으로 분포되며 이러한 요소들 사이를 링크(link)로 연결하여 구성한다.
- 관련 용어
- 단일 연결 리스트(singly linked list)
- 다음 요소를 가리키는 참조만을 가지는 연결 리스트
- 요소의 저장과 삭제 작업이 다음 요소를 가리키는 참조만 변경하면 되므로 아주 빠르게 처리할 수 있다.
- 현재 요소에서 이전 요소로 접근하기가 매우 어렵다.
- 이중 연결 리스트(doubly linked list)
- 다음 요소를 가리키는 참조와 이전 요소를 가리키는 참조도 가지는 연결 리스트
- 단일 연결 리스트(singly linked list)
- JDK 1.2부터 제공
- 사용 예시
Vector<E> 클래스
- 현재의 Vector 클래스는 ArrayList 클래스와 마찬가지로 List 인터페이스를 상속받는다.
- JDK 1.0부터 제공되는 ArrayList 클래스와 같은 동작을 수행하는 클래스
- 현재에는 기존 코드와의 호환성을 위해서만 남아있으므로 Vector 클래스보다는 ArrayList 클래스를 사용하는 것이 좋다.