티스토리 뷰

728x90

 

✅ Java 주요 컬렉션 비교표

 

컬렉션  특징  주요 메서드 성능  중복 허용  정렬 보장  쓰레드 안전
ArrayList 배열 기반 리스트. 인덱스 접근이 빠름. get: O(1)add/remove: O(n) (중간에서) 허용 삽입 순서 유지
LinkedList 이중 연결 리스트 기반. 삽입/삭제 빠름 get: O(n)add/remove: O(1) (앞뒤에서) 허용 삽입 순서 유지
HashSet 해시 기반. 순서 없음. 빠른 검색 add/remove/contains: O(1) ❌ 중복 불가
LinkedHashSet HashSet + 삽입 순서 유지 HashSet과 동일 ✔ 삽입 순서 유지
TreeSet 이진 탐색 트리 기반 (Red-Black Tree) add/remove/contains: O(log n) ✔ 정렬됨 (자연순/비교기)
HashMap 키-값 쌍 저장. 빠른 검색 get/put/remove: O(1) ❌ (키 중복 불가)
Hashtable HashMap과 유사. 쓰레드 안전 get/put: O(1)
ConcurrentHashMap 멀티스레드 환경에서 동시성 보장 get/put: O(1) ✔ 고성능

🧠 선택 가이드

상황 추천 컬렉션 이유
인덱스를 자주 참조해야 함 ArrayList 빠른 get(index)
앞/중간에 자주 삽입/삭제 LinkedList addFirst, removeFirst 성능 우수
중복 제거 & 빠른 검색 HashSet 해시 기반, 중복 없음
삽입 순서 유지 + 중복 제거 LinkedHashSet 순서 유지되는 Set
정렬된 Set 필요 TreeSet 자동 정렬 + 중복 제거
키-값 저장 필요 HashMap 대부분의 일반적 Map
멀티스레드 환경 ConcurrentHashMap 동시성 보장, 락 분할
Thread-safe + 예전 코드와 호환 Hashtable 하지만 요즘엔 거의 안 씀

 

728x90

'Programming' 카테고리의 다른 글

BlockingQueue 란?  (0) 2025.04.17
Java 큐/스택 계열 컬렉션 비교  (0) 2025.04.17
Observer 패턴 (Pub/Sub, 이벤트 리스너)  (0) 2025.04.17
CRON / Scheduler  (1) 2025.04.17
Thread / Coroutine / Green Thread  (0) 2025.04.17
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함