컬렉션 프레임워크 : 데이터 군을 저장하는 클래스들을 표준화한 설계
- 인터페이스 : 다양한 컬렉션 유형을 정의하고 일반적인 동작 및 연산을 제공하는 인터페이스를 포함합니다. ex) List, Set, Map
- 클래스 : 컬렉션 인터페이스를 구현하는 다양한 클래스가 제공됩니다. 이러한 클래스는 구체적인 컬렉션 유형을 나타내며, 다양한 방법으로 데이터를 저장, 관리합니다. ex) ArrayList, HashSet 등
- 알고리즘 : 데이터 그룹을 조작하는데 사용할 수 있는 일련의 알고리즘과 메서드를 제공합니다.

| 컬렉션 | 장점 | 단점 |
|---|---|---|
| ArrayList | 빠른 접근 시간 | 배열구조이기에 중간에 요소를 삽입하거나 삭제할 때, 뒤의 모든 요소를 이동시켜야 하기에 비효율적 |
| 데이터 추가 및 삭제가 빠름(리스트의 끝에 요소를 추가하거나 삭제하는 작업등), 메모리 효율이 좋다 | 동적배열로 구성되어 있어 크기를 동적으로 조절하는데 시간과 메모리 소모 | |
| LinkedList | 중간에 요소를 삽입하거나 삭제하는 작업이 빠름 | 요소에 접근하기 위해서는 처음부터 순차적으로 접근해야하기에 빠른접근이 어려움 |
| 요소를 삽입 또는 삭제할 떄 다른 요소를 이동시키지 않아도 됨 | 추가적인 링크 정보를 저장해야 하므로 메모리 사용량이 상대적으로 큼 |
| 컬렉션 | 장점 | 단점 |
|---|---|---|
| HashSet | 빠른 검색 및 삽입 | HashSet은 요소의 순서를 보장하지 않는다 |
| 중복된 요소를 허용하지 않음 | TreeSet과 비교하면 상대적으로 빠른 검색속도가 제공되지만, 트리구조가 아니기에 정렬된 순서로 데이터를 얻을 수 없다 | |
| TreeSet | 정렬된 순서로 요소를 제공, 범위 검색에 좋다 | 균형 이진 검색트리를 사용하므로 검색 및 삽입이 O(log n)의 시간 복잡도를 가짐 |
| LinkedHashSet | HashSet과 TreeSet의 장점을 조합(중복된 요소 방지 및 정렬된 순서로 제공) | 검색 및 삽입이 HashSet보다 느릴 수 있음 |
검색속도와 정렬 순서가 중요한 경우 TreeSet 또는 LinkedHashSet을, 중복된 요소를 허용하지 않아야하며 검색 및 삽입 성능이 중요한 경우 HashSet을 사용할 수 있습니다.
| 컬렉션 | 장점 | 단점 |
|---|---|---|
| HashMap | 빠른 검색 및 삽입 시간 | 순서가 보장되지 않으며, 동기화를 지원하지 않아 멀티스레드 환경에서 안전하지 않다 |
| TreeMap | 키를 기준으로 정렬된 상태 유지 | 검색, 삽입, 삭제 시간이 O(log n)으로 HashMap보다 느릴 수 있다. 또한 정렬을 위해 추가 메모리가 필요 |
| LinkedHashMap | 요소들의 삽입 순서가 유지 | HashMap과 마찬가지로 검색, 삽입, 삭제 시간이 O(1)이지만 순서 유지에 추가적인 비용이 들 수 있다 |