Tech
HashMap & HashSet 차이점
손을 뻗어 하늘에 물감을 묻혀보자
2025. 3. 24. 03:24
HashMap/Dictionary
- 키(Key)와 값(Value) 쌍을 저장하는 자료구조
- HashMap<Key, Value> 형태로 사용됨
- Key는 중복 불가, Value는 중복 가능
- 내부적으로 해시 테이블(배열 + 연결 리스트/트리) 을 사용하여 빠른 탐색
- 추가 데이터 삽입시, add() method 를 사용
- 평균 시간 복잡도 O(1), O(n) - 최악의 경우, interrupt hash
HashSet
- 키(Key)와 값(Value) 쌍을 저장하는 자료구조
- HashSet<Value> 형태로 사용됨 (Key만 저장하는 HashMap과 유사)
- 중복된 값 저장 불가
- 내부적으로 해시 테이블을 사용하여 검색 속도가 빠름
- 평균 시간복잡도 O(1)
<정리>
| 저장 방식 | 키-값 (Key-Value) 쌍으로 저장 | 고유한 값(Value)만 저장 |
| Key 중복 가능 여부 | ❌ 불가능 (유일한 키 필요) | ✅ 중복 불가능 |
| Value 중복 가능 여부 | ✅ 가능 | ✅ 가능 (하지만 저장할 수 있는 건 키처럼 동작) |
| 시간 복잡도 (삽입/탐색/삭제) | 평균 O(1) | 평균 O(1) |
| 사용 사례 | 키-값 형태의 데이터 저장 (예: 사용자 정보, 캐싱) | 중복 없는 유니크한 데이터 저장 (예: 유일한 ID 목록) |