ArrayList
- Vector를 개선. 구현 원리와 기능적으로 동일
- 동기화 처리 안되어있다.(Vector은 동기화 처리 됨)
- List 인터페이스를 구현하므로, 저장순서가 유지되고 중복을 허용한다.
- 데이터의 저장공간으로 배열을 사용한다.(배열 기반)
ArrayList의 메서드
- 생성자
ArrayList()
ArrayList(Collection c)
ArrayList(int initCapacity) : 배열의 길이 설정
- boolean add(Object o) : 성공 true 실패 false
- void add(int index, Object o) : 추가할 위치
- boolean addAll(int index, Collection o) : 성공 true 실패 false
- boolean remove(int index) : 인덱스를 삭제
- Object remove(Object 0) : 객체를 삭제 ** 헷갈리지 말것
list.remove(1) : 인덱스 삭제
list.remove(new Integer(1)) : 객체를 삭제
... List 메소드와 동일
- Object[] toArray() : 객체 배열을 반환
- Object[] toArray(Object[] a)
- void trimToSize() : 빈공간 제거
- int size() : 저장된 객체 갯수
ArrayList에 저장된 객체의 삭제과정
1. 삭제할 데이터를 한칸씩 위로 복사해서 삭제할 데이터를 덮어쓴다.
System.arraycopy(data, 3, data 2,2) > data[3]에서 data[2]로 2개의 데이터를 복사하라
2. 데이터가 모두 한 칸씩 이동했으므로 마지막 데이터는 null로 변경한다.
data[size-1] = null;
3. size 값을 감소한다.
size--;
** 마지막 부터 삭제 하는 경우는 배열 복사 발생하지 않는다. 빠르다.
'개발' 카테고리의 다른 글
Java - 스택과 큐 (Stack & Queue) (0) | 2021.06.06 |
---|---|
Java - LinkedList (0) | 2021.06.06 |
Java - 컬렉션 프레임웍(collections framework) (0) | 2021.06.06 |
Java - 형식화 클래스 (0) | 2021.06.06 |
Java - 날짜와 시간 (0) | 2021.06.06 |