빌려온 가나디

map, hashmap, set 의 차이에 대해 설명하세요 본문

Computer Science

map, hashmap, set 의 차이에 대해 설명하세요

daun_up 2025. 9. 23. 22:53

Map

  • key-value 쌍
  • key 는 중복 불가능, value 는 중복 가능
  • key 를 통해 value 를 빠르게 찾을 수 있다.
  • HashMap : 내부적으로 해시 테이블을 사용한다. (순서 보장 x)
  • TreeMap : 이진 탐색 트리 기반이다. (Key 순서대로 정렬)
  • LinkedHashMap : 입력 순서를 보장한다.

Set

  • 집합
  • 수학 집합과 동일하게, 중복 없는 원소 모음을 저장하는 자료구조이다.
  • 보통 원소 존재 여부 확인이 주요 목적이다.
  • HashSet : 해시 테이블 기반이다. (순서 보장 x)
  • TreeSet : 이진 탐색 트리 기반이다. (정렬을 보장)
  • LinkedHashSet : 입력 순서를 유지한다.

Hash

  • HashTable
  • 해시 함수를 사용해 데이터를 특정 위치에 매핑하여 빠른 검색이 가능하게 한다.
  • 해시 함수가 동일한 값을 반환하면 충돌이 발생하는데, 체이닝 혹은 오픈 어드레싱 등으로 해결한다.

python 의 map() 과 map 자료구조

는 아무래도 당연히 다른 거다. 자료구조로서의 map 은 key-value 쌍을 저장하는 자료구조이다. Java 의 Map 인터페이스 (HashMap, TreeMap 등) 가 대표적 예시이다.

python 에서 자료구조로서의 map 은 dict(딕셔너리) 에 해당한다.

python 에서의 map() 은 iterable(리스트, 튜플 등)의 각 원소에 함수를 적용해 새로운 iterator 를 반환한다.

헷갈리기 쉬운 포인트

  • Hash 는 원리 (해시 함수 + 해시 테이블), Map 과 Set 은 자료구조