프로그래밍언어/Java

[자바의 정석] 11. 컬렉션 프레임웍 - ArrayList

qkzkdo 2023. 8. 6. 13:10
728x90

1.2 ArrayList

ArrayList는 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다. 이 ArrayList는 List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다.

 

ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있다.

ArrayList는 Object배열을 이용해서 데이터를 순차적으로 저장한다.(데이터의 저장공간으로 배열을 사용 - 배열기반)

 

ArrayList 소스코드 일부

  • Object배열을 멤버 변수로 선언하고 있다
  • 선언된 배열의 타입이 모든 객체의 최고조상인 Object이기 때문에 모든 종류의 객체를 담을 수 있다.
public class ArrayList extends AbstractList
    implements List, RandomAccess, Cloneable, java.io.Serializable {
        ...
        transient Object[] elementData; //Object배열 //transient 직렬화 관련 제어자 15장
        ...
}

 

ArrayList나 Vector 같이 배열을 이용한 자료구조는 데이터를 읽어오고 저장하는 데는 효율이 좋지만, 용량을 변경해야할 대는 새로운 배열을 생성한 후 기존의 배열로부터 새로 생성된 배열로 데이터를 복사해야하기 때문에 상당히 효율이 떨어진다.

 

 

 

출처 : 남궁성. 「자바의 정석」. 도우출판. 2016

728x90