자바(JAVA) 컬렉션(Collection)
2024. 4. 19. 15:00ㆍCS
자바(Java) 프로그래밍 언어에서 데이터를 효율적으로 관리하고 처리하기 위한 구조체는 필수적입니다. 이러한 필요성을 충족시키기 위해 자바는 다양한 컬렉션(Collection) 자료구조를 제공합니다. 컬렉션 프레임워크는 데이터를 저장, 검색, 정렬, 조작 등 다양한 방법으로 관리할 수 있게 해주는 클래스와 인터페이스의 집합입니다. 이 글에서는 자바의 주요 컬렉션 자료구조들을 살펴보고, 각각의 특징과 활용 방법에 대해 알아보겠습니다.
컬렉션 프레임워크의 구조
자바의 컬렉션 프레임워크는 크게 세 가지 주요 인터페이스로 구분됩니다: List, Set, Map. 각 인터페이스는 데이터를 관리하는 특정 방식을 정의하며, 이를 구현하는 다양한 클래스를 포함합니다.
List 인터페이스
List 인터페이스는 순서가 있는 데이터의 집합을 다루며, 데이터의 중복을 허용합니다. 대표적인 구현 클래스로는 ArrayList, LinkedList, Vector 등이 있습니다.
- ArrayList: 가장 널리 사용되는 리스트 구현체로, 인덱스를 통한 빠른 접근이 가능합니다.
- LinkedList: 각 요소가 포인터로 연결되어 있어, 데이터의 삽입과 삭제가 빈번할 때 유리합니다.
- Vector: ArrayList와 유사하지만, 스레드 안전(thread-safe)합니다.
Set 인터페이스
Set 인터페이스는 중복을 허용하지 않는 유일한 요소의 집합입니다. 데이터의 순서는 보장되지 않습니다. HashSet, LinkedHashSet, TreeSet 등이 Set 인터페이스를 구현합니다.
- HashSet: 해시 테이블을 사용하여 요소를 저장하므로 검색 속도가 매우 빠릅니다.
- LinkedHashSet: HashSet의 순서 보장 버전으로, 요소가 추가된 순서대로 반복됩니다.
- TreeSet: 레드-블랙 트리 구조를 사용하여 요소를 정렬된 순서로 저장합니다.
Map 인터페이스
Map 인터페이스는 키(key)와 값(value)의 쌍으로 데이터를 관리합니다. 키는 유일해야 하며, 각 키는 하나의 값에 매핑됩니다. HashMap, LinkedHashMap, TreeMap 등이 있습니다.
- HashMap: 키와 값의 쌍을 해시 테이블에 저장하여 빠른 검색을 가능하게 합니다.
- LinkedHashMap: HashMap에 순서 보장 기능을 추가한 버전입니다.
- TreeMap: 키를 기준으로 정렬된 순서로 요소를 저장합니다.
'CS' 카테고리의 다른 글
| 비트(bit)란? (1) | 2024.05.01 |
|---|---|
| [JAVA] Garbage Collection(가비지 컬렉션) (1) | 2024.04.13 |
| 메모리의 구조 (0) | 2024.04.09 |
| CPU 스케줄링 (0) | 2024.04.04 |
| 프로세스(Process)와 스레드(Thread) (0) | 2024.04.01 |