Collection 인터페이스는 List, Set, Queue 로 크게 3가지 상위 인터페이스로 분류가 된다.
List와 Set, Queue는 Collection 인터페이스를 상속 받지만, 구조 상의 이유로 Map은 따로 구현되어 있다.
주요 인터페이스 특징
인터페이스 | 설명 | 구현 클래스 |
---|---|---|
List | 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다. | ArrayList, LinkedList, Stack, Queue, Vector |
Set | 순서가 없는 데이터의 집합으로, 데이터 중복 허용하지 않는다. | HashSet, TreeSet |
Map<K, V> | 키와 값이 쌍를 이루어 구성되는 데이터 집합으로 순서가 없다. 키의 중복은 허용되지 않지만, 값의 중복은 허용된다. | HashMap, TreeMap, Properties |
ArrayList 클래스가 배열과 유사하게 데이터를 저장함으로써 발생하는 단점을 보완하기 위해 고안
기능적으로는 ArrayList와 다르지 않지만, 내부적으로 연결 리스트(Linked List)를 이용해 데이터를 저장
특징
단일 연결 리스트
: 요소의 저장과 삭제 시 다음 요소를 가리키는 참조 링크만 변경
이중 연결 리스트
: 이전 요소도 링크하여 이전 요소로 접근하기 쉽게 고안된 자료구조