본문 바로가기

자바의 정석

[자바의 정석 2권] ArrayList

1) ArrayList란?

- ArrayList는 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다.

 이 ArrayList는 List인터페이스를 구현하기 때문에 데이터의 저장 순서가 유지되고

 중복을 허용한다는 특징을 갖는다.

 

- ArrayList는 기존의 Vector를 개선한 것으로 Vector의 구현원리와 기능적인 측면에서

 동일하다고 할 수 있다.

 Vector는 기존에 작성된 소스와의 호환성을 위해서 계속 남겨 두고 있을 뿐이기 때문에

 가능하면 Vector보다는 ArrayList를 사용하자. 

 

public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable {
    ...
    transient Object[] elementData; // Object 배열 
}

 

- ArrayList는 Object 배열을 이용해서 데이터를 순차적으로 저장한다.

 예를 들면, 첫 번째로 저장한 객체는 Object 배열의 0번째 위치에 저장되고

 그 다음에 저장하는 객체는 1번째 위치에 저장된다.

 

- 이런 식으로 계속 배열에 순서대로 저장되며, 배열에 더 이상 저장할 공간이 없으면 

  보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 

  새로운 배열로 복사한 다음에 저장된다.