컬렉션 프레임워크


자바에서는 데이터 집합을 저장하기 위해 배열을 사용한다. 배열은 인덱스에 바로 접근할 수 있어 속도가 빠르다는 장점이 있지만 아래와 같은 단점을 갖는다.

데이터가 몇 번 인덱스까지 저장되어 있는지를 확인하기 위한 변수를 생성하고, 삭제할 때 인덱스에 담긴 값을 하나씩 당기거나 새 배열의 공간을 계산하여 코드를 작성하는 것은 번거로운 일이다.

자바에서는 이를 해결하기 위해 널리 알려진 자료구조를 기반으로 컬렉션 프레임워크를 도입했다. 컬렉션 프레임워크는 다양한 데이터 구조를 제공하여 프로그래머가 효율적으로 데이터를 다룰 수 있도록 돕는다.

계층 구조


collection_framework.png

위 그림처럼 Iterable을 상속받는 List, Set, Queue 인터페이스와 다른 계층의 Map 인터페이스가 존재한다. List, Set의 검색, 추가, 삭제와 같은 공통 메서드를 Collection 인터페이스에서 정의하는 반면 Map은 Key Value를 쌍으로 묶는 구조로 둘과는 다르기 때문이다.