많은 수의 데이터를 그 사용 목적에 적합한 자료구조로 묶어 하나로 그룹화한 객체를 말한다. 자바에서는 이러한 컬렉션을 위한 인터페이스와 클래스들이 있으며 자주 사용되는 클래스들의 종류와 상속 계층도는 아래와 같다.
컬렉션 관계도
- LinkedList
-양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용하다.
-스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임- Vector
-과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 안쓰임.- ArrayList
-단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남
Set : 중복이 허용되지 않는 데이터를 관리한다.
- HashSet
-가장빠른 임의 접근 속도
-순서를 예측할 수 없음- TreeSet
-정렬방법을 지정할 수 있음
Map : 데이터를 Key와 Value로 짝을 이루어 관리하며, Key값은 중복을 허용하지 않는다.
- Hashtable
-HashMap보다는 느리지만 동기화 지원
-null불가- HashMap
-중복과 순서가 허용되지 않으며 null값이 올 수 있다.- TreeMap
-정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름
- Queue : 데이터 In/Out 순서를 FIFO 방식으로 관리한다.(FIFO : First In First Out)
- Stack : 데이터 In/Out 순서를 LIFO 방식으로 관리한다.(LIFO : Last In First Out)