자바 컬렉션

김이·2024년 11월 18일

자바 컬렉션은 데이터를 효율적으로 관리하고 조작하기 위한 클래스 및 인터페이스의 집합이다. 이를 사용하면 배열보다 더 유연하고 강력하게 데이터를 처리할 수 있다. 주요 컬렉션 인터페이스와 구현 클래스에 대해 간단히 정리한다.

1. 주요 인터페이스

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 등.

2. 주요 구현 클래스의 특징

1.	ArrayList
•	내부적으로 배열을 사용하여 데이터를 저장한다.
•	랜덤 액세스가 빠르지만, 삽입/삭제 시 성능이 떨어질 수 있다.

2.	LinkedList
•	내부적으로 이중 연결 리스트를 사용한다.
•	삽입/삭제가 빠르지만, 랜덤 액세스는 느리다.

3.	HashSet
•	HashMap을 기반으로 동작하며, 중복을 허용하지 않는다.
•	데이터의 순서를 보장하지 않는다.

4.	TreeSet
•	이진 검색 트리를 기반으로 동작하며, 데이터가 정렬된 상태로 저장된다.
•	삽입과 검색이 비교적 빠르다.

5.	HashMap
•	키-값 쌍을 해시 테이블로 관리한다.
•	순서를 보장하지 않는다.

6.	LinkedHashMap
•	데이터 삽입 순서를 유지한다.
•	HashMap보다 메모리를 조금 더 사용한다.

7.	PriorityQueue
•	우선순위에 따라 요소를 정렬한다.
•	기본적으로 최소 힙(min heap) 구조를 사용한다.

3. 그래서 언제 쓸까?!

•	List는 "순서"가 중요할 때 사용한다.

•	Set은 "중복을 제거"할 때 유용하다.

•	Map은 "키를 기반으로 값을 빠르게 조회해야 할 때" 사용한다.

•	Queue는 "순차적"으로 처리해야 할 데이터가 있을 때 적합하다.

컬렉션은 자바 프로그래밍에서 자주 사용되므로 기본적인 인터페이스와 구현 클래스의 차이를 이해하고 적절히 사용하는 것이 중요하다!!!

profile
공부!

0개의 댓글