생성자 | 설명 |
---|---|
ArrayList() | 기본 생성자 |
ArrayList(Collection c) | 매개변수로 Collection(c)를 주면 Collection을 저장하는 ArrayList를 생성 |
ArrayList(int initialCapacity) | 배열의 길이(initialCapacity)를 넣어서 길이를 지정해서 생성 |
ArrayList를 생성할때 충분히 공간을 지정해 주는 것이 좋다.
그렇지 않으면 공간이 부족할때 마다 배열을 생성하고 복제하는 과정을 거쳐
성능이 떨어진다.
boolean add(Object o) 성공하면 true를 반환
void add(int index, Object element) index(저장위치)를 지정하여 저장할 수 있다.
boolean addAll(Collection c) 컬렉션이 가지고 있는 요소를 저장
boolean addAll(int index, Collection c) index(저장 위치)를 지정할 수 있다.
boolean remove(Object o)
Object remove(int index) 위치를 지정하여 삭제
boolean removeAll(Collection c) 컬렉션에 있는 객체(데이터)를 삭제
void clear() 모든 객체 삭제
int indexOf(Object o) 객체가 몇번째에 저장되어있는지 반환, 못찾으면 -1
왼쪽에서 오른쪽으로 탐색
int lastIndexOf(Object o)
오른쪽(끝)에서 왼쪽으로 탐색
boolean contains(Object o) 객체가 존재하는지
Object get(int index) 특정 위치에 있는 객체 반환
Object set (int index, Object element) 특정 위치에 있는 객체 변경
List subList(int fromIndex, int toIndex)
시작위치(from)부터 특정 위치(toIndex)까지 List를 뽑아 새로운 List 반환
Object[] toArray() ArrayList의 객체배열을 반환
Object[] toArray(Object[] a)
boolean isEmpty() 비어있는지
void trimToSize() 빈공간 제거
int size() 저장된 객체의 개수 반환
-ArraysList에 저장된 세 번째 데이터(data[2])를 삭제하는 과정
list.remove(2);를 호출
마지막 데이터를 삭제하는 경우, 1의 과정(배열의 복사)은 필요 없다.
ArrayList에 저장된 첫 번째 객체부터 삭제하는 경우(배열 복사 발생)
for(int i=0; i<list.size(); i++){
list.remove(i);
}
위 코드를 작동 시키면
위와 같이 나오기 때문에 삭제가 온전히 이루어지지 않는다 그렇다면 어떻게 해야할까?
ArrayList에 저장된 마지막 객체부터 삭제하는 경우(배열 복사 발생 안함)
for(int i=list.size()-1; i>=0; i--){
list.remove(i);
}
뒤부터 삭제를 하면 위의 그림처럼 하나하나 삭제되기 때문에 완전히 삭제를 시킬 수 있다.