알고리즘 공부 중 HashSet / LinkedHashSet / TreeSet 을 비교 정리했습니다.
Set 인터페이스 구현체 → 중복 요소 허용 X null 값 저장 가능 (단, 하나만) add, remove, contains 모두 O(1) HashSet을 상속해서 구현됨 null 값 저장 가능 (단, 하나만) HashSet과 동일 → 평균 O(1) NavigableSet 인터페이스 구현체 null 값 저장 불가 (NullPointerException 발생) add, remove, contains 모두 O(log n) (트리 탐색 기반) | 구분 | HashSet | LinkedHashSet | TreeSet |
|---|---|---|---|
| 중복 허용 여부 | ❌ (불가) | ❌ (불가) | ❌ (불가) |
| 순서 보장 | ❌ (불규칙) | ✅ (삽입 순서 유지) | ✅ (정렬 순서 유지) |
| 내부 구조 | HashMap | HashMap + LinkedList | Red-Black Tree |
| null 저장 | 가능 (1개) | 가능 (1개) | 불가 |
| 시간 복잡도 | 평균 O(1), 최악 O(n) | 평균 O(1), 최악 O(n) | O(log n) |
| 특징/활용 | 중복 없는 집합, 빠른 검색 | 중복 없는 집합 + 삽입 순서 유지 | 중복 없는 집합 + 정렬 필요 |
읽어주셔서 감사합니다.
HashSet, LinkedHashSet, TreeSet의 특성과 차이
자바[JAVA] : Set - HashSet / TreeSet / LinkedHashSet 알아보기.
Set이란? HashSet, TreeSet, LinkedHashSet