빌려온 가나디
map, hashmap, set 의 차이에 대해 설명하세요 본문

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 은 자료구조