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 목록)