기본 문법/[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를 참조하자!