자료구조

HashMap vs TreeMap vs LinkedHashMap

Stitchhhh 2025. 5. 1. 12:39

HashMap vs TreeMap vs LinkedHashMap

항목 HashMap TreeMap LinkedHashMap
기반 자료구조 Hash Table Red-Black Tree Hash Table + Linked List
정렬 여부 ❌ 없음 ✅ 자동 정렬 (Key 기준 오름차순) ❌ 없음
삽입 순서 유지 ❌ 없음 ❌ 없음 (정렬 순서로 유지됨) ✅ 유지
null 키 허용 ✅ 1개 허용 ❌ (NullPointerException 발생) ✅ 1개 허용
null 값 허용
시간 복잡도 (삽입/삭제/조회) 평균 O(1) O(log n) 평균 O(1)
Iterator 순회 순서 예측 불가 Key 정렬 순 삽입 순
Key 비교 방식 equals() + hashCode() compareTo() 또는 Comparator equals() + hashCode()
사용 추천 상황 빠른 조회/삽입이 중요할 때 정렬된 Key가 필요할 때 순서를 기억하면서 빠르게 접근하고 싶을 때

상황별 추천

매우 빠른 key 기반 탐색 HashMap
Key를 정렬된 상태로 유지해야 할 때 TreeMap
Key 삽입 순서를 기억하면서 탐색도 하고 싶을 때 LinkedHashMap

'자료구조' 카테고리의 다른 글

TreeMap - Java  (4) 2025.05.01
LinkedHashMap - Java  (2) 2025.05.01
HashMap - Java  (2) 2025.05.01
TreeSet vs HashSet vs LinkedHashSet  (10) 2025.04.30
LinkedHashSet - Java  (0) 2025.04.30