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);
}