ArrayList
- ArrayList 는 기존의 Vector 를 개선한 것으로 구현 원리와 기능적으로 동일
 
- ArrayList 동기화 ❌, Vector 동기화 ✅
 
- List 인터페이스 구현 = 순서 ⭕, 중복 ⭕
 
- 데이터의 저장 공간의 배열을 사용 (배열 기반)
 
ArrayList 메서드
생성자
 |  | 
|---|
| ArrayList() | 기본 생성자 | 
| ArrayList(Collection c) | 컬렉션 | 
| ArrayListI(int initialCapacity) | 배열의 길이 | 
ArrayList list = new ArrayList(10); 
추가 메서드
 |  | 
|---|
| boolean add(Object o) | 마지막에 객체 추가 | 
| void add(int index, Object element) | 위치에 객체 추가 | 
| boolean addAll(Collection c) | 마지막에 컬렉션 추가 | 
| boolean addAll(int index, Collection c) | 위치에 컬렉션 추가 | 
list.add(new Integer(5));
list.add(5);
삭제 메서드
 |  | 
|---|
| boolean remove(Object o) | 객체 삭제 | 
| Object remove(int index) | 위치에 있는 객체 삭제 | 
| boolean removeAll(Collection c) | 컬렉션에 있는 객체 삭제 | 
| void clear() | 모든 객체 삭제 | 
검색 메서드
 |  | 
|---|
| int indexOf(Object o) | 순방향 검색 | 
| int lastIndexOf(Object o) | 역방향 검색 | 
| boolean contains(Object o) | 객체 존재 여부 | 
| Object get(int index) | 특정 위치 객체 반환 | 
| Object set(int index, Object element) | 특정 위치 객체 변경 | 
나머지 메서드
 |  | 
|---|
| List subList(int fromIndex, int toIndex) | 일부 리스트 범위 추출 | 
| Object[] toArray() | 객체 배열 반환 | 
| Object[] toArray(Object[] a) |  | 
| boolean isEmpty() | 비어 있는지 확인 | 
| void trimToSize() | 빈 공간 제거 | 
| int size() | 저장된 객체의 개수 | 
| Object retainAll(Object o) | 두 객체의 겹치는 부분만 남기고 제거 | 
ArrayList 객체 삭제 과정
- 첫 번째 객체부터 삭제하는 경우 배열 복사 발생 → 전부 안지워진다.
 
- 마지막 객체부터 삭제하는 경우 배열 복사 발생 안함 → 전부 지워짐
 
for(int i = list.size()-1; i >= 0; i--) {
		list.remove(i);
}