Collection을 구성하고, 구성된 Data를 Handling 하기위한 Interface와 Class들의 집합체 라고 한다.
프로그래밍을 하다보면 임시적으로 데이터를 저장하고 다루는 일이 빈번한데,
이때 데이터를 저장하는 자료구조와 데이터를 처리하는 API들을 잘만들어서 정리해둔것이 Collection Framework
예를들면
List는 데이터를 저장시 순서를 기록하고 중복된 데이터를 허용하는 방식이고
Set은 데이터를 저장시 순서를 보장하지 않고 중복된 데이터를 허용하지 않는다.
프로그래밍을 할때는 각각의 특징에 맞게 사용하면 된다.
Collection Framework은 크게 Collection과 Map 두가지의 Interface로부터 시작된다
Iterable을 상속받는 Collection은 값(Element)의 집합체이고
Map은 값(Value)을 찾기 위해 Key를 지정한 Key-Value 쌍의 집합체이다
Interface명 | 특징 | 대표예시 |
---|---|---|
Collection | Object의 단독 구성 | ArrayList, HashSet... |
Map | Key-Value의 Pair 구성 | HashMap... |
Collection을 상속받은 주요 Interface는 List / Set / Queue가 있다.
Interface명 | 특징 | 대표예시 |
---|---|---|
Set | 순서가 없는 값의 집합, 중복을 허용하지 않음 | HashSet |
List | 순서가 있는 값의 집합, 중복을 허용 | LinkedList |
Queue | 순서가 있는 값의 집합, 중복을 허용 / 선입선출(FIFO) | PriorityQueue |
결국 Collection Framework은 아래 4가지의 Interface를 상속받아 데이터 구조를 확장한다
Interface명 | 순서 | 중복 | 특징 | 대표예시 |
---|---|---|---|---|
Set | X | X | 값의 집합 | HashSet |
List | O | O | 값의 집합 | ArrayList |
Queue | O | O | 선입선출(FIFO) | PriorityQueue |
Map | KEY(X), Value(O) | Key-Value의 Pair 구성 | HashMap |