자바 컬렉션은 데이터를 효율적으로 관리하고 조작하기 위한 클래스 및 인터페이스의 집합이다. 이를 사용하면 배열보다 더 유연하고 강력하게 데이터를 처리할 수 있다. 주요 컬렉션 인터페이스와 구현 클래스에 대해 간단히 정리한다.
1. List
• 순서가 있는 데이터의 집합을 관리한다.
• 중복된 요소를 허용한다.
• 구현 클래스: ArrayList, LinkedList, Vector, Stack 등.
2. Set
• 중복을 허용하지 않는 데이터의 집합을 관리한다.
• 순서는 보장되지 않거나 특정 기준으로 정렬된다.
• 구현 클래스: HashSet, LinkedHashSet, TreeSet 등.
3. Map
• 키-값 쌍으로 데이터를 관리한다.
• 키는 중복을 허용하지 않지만 값은 중복 가능하다.
• 구현 클래스: HashMap, LinkedHashMap, TreeMap, Hashtable 등.
4. Queue
• 선입선출(FIFO)의 데이터 구조를 관리한다.
• 구현 클래스: LinkedList, PriorityQueue 등.
5. Deque (Double-Ended Queue)
• 양쪽에서 삽입과 삭제가 가능한 큐이다.
• 구현 클래스: ArrayDeque, LinkedList 등.
1. ArrayList
• 내부적으로 배열을 사용하여 데이터를 저장한다.
• 랜덤 액세스가 빠르지만, 삽입/삭제 시 성능이 떨어질 수 있다.
2. LinkedList
• 내부적으로 이중 연결 리스트를 사용한다.
• 삽입/삭제가 빠르지만, 랜덤 액세스는 느리다.
3. HashSet
• HashMap을 기반으로 동작하며, 중복을 허용하지 않는다.
• 데이터의 순서를 보장하지 않는다.
4. TreeSet
• 이진 검색 트리를 기반으로 동작하며, 데이터가 정렬된 상태로 저장된다.
• 삽입과 검색이 비교적 빠르다.
5. HashMap
• 키-값 쌍을 해시 테이블로 관리한다.
• 순서를 보장하지 않는다.
6. LinkedHashMap
• 데이터 삽입 순서를 유지한다.
• HashMap보다 메모리를 조금 더 사용한다.
7. PriorityQueue
• 우선순위에 따라 요소를 정렬한다.
• 기본적으로 최소 힙(min heap) 구조를 사용한다.
• List는 "순서"가 중요할 때 사용한다.
• Set은 "중복을 제거"할 때 유용하다.
• Map은 "키를 기반으로 값을 빠르게 조회해야 할 때" 사용한다.
• Queue는 "순차적"으로 처리해야 할 데이터가 있을 때 적합하다.
컬렉션은 자바 프로그래밍에서 자주 사용되므로 기본적인 인터페이스와 구현 클래스의 차이를 이해하고 적절히 사용하는 것이 중요하다!!!