기본 문법/[JAVA]
[JAVA] List - ArrayList
바켱서
2020. 6. 12. 00:09
ArrayList는 List인터페이스를 구현한다.
이 말은 즉 List인터페이스를 구현했기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다.
Vector의 상위호환
ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있다.
가능하다면 Vector보다는 자바에서는 ArrayList를 사용하자.
데이터를 순차적으로 저장한다.
1. Object배열을 이용해서 데이터를 순차적으로 저장한다.
2. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성한 후
기존의 배열을 저장하고
새로운 배열로 기존의 배열이 붙여진 다음에 값이 저장된다.
용량을 변경할 때 새로운 배열을 생성한 후 기존의 배열로부터 새로 생성된 배열로 데이터를 복사해야하기 때문에 상당히 효율이 떨어진다!! --> 처음에 인스턴스를 생성할 때, 저장할 데이터의 개수를 잘 고려해서 생성하자.
물론 배열을 이용했으므로 데이터를 읽어오고 + 저장하는 데는 효율이 좋다!
(비순차적인 저장은 효율이 좋지 않다.)
개인적으로 생각하는 ArrayList클래스에서 중요한 메서드
boolean add(Object o) | 리스트의 마지막에 객체를 추가한다. |
void add(int index, Object element) | 리스트의 index 위치에 element(객체)를 추가한다. |
boolean contains(Object o) | 객체(o)가 존재하면 true 반환 |
Object get(int index) | 리스트에서 index위치의 값 반환 |
int indexOf(Object o) | 객체(o)가 존재하는 위치 값 반환 |
boolean isEmpty() | 리스트가 비었으면 true반환 |
void sort(Comparator c) | 지정된 정렬기준(c)로 리스트를 정렬 |
다른 메서들을 찾고 싶으면 API를 참조하자!