key-value pair들을 저장하는 ADT이다. 같은 key를 가지는 pair는 하나만 존재할 수 있다(중복 X). associative array, dictionary라고 부르기도 한다.
배열과 해시 함수를 사용하여 map을 구현한 자료 구조이다. 일반적으로 상수 시간으로 데이터에 접근할 수 있다.
저장(put)
key값을 hash function에 넣음 → 나온 값을 배열의 크기(capacity)로 나눔 → 나머지 값을 배열의 인덱스를 위치로 key,value,hash 값을 저장
조회(get)
key값을 hash function에 넣음 → 나온 값을 배열의 크기(capacity)로 나눔 → 나머지값 인덱스에서 key값이 동일한 데이터 검색
Hash function
- 임의의 크기를 가지는 type의 데이터를 고정된 크기를 가지는 type의 데이터로 변환하는 함수
- (hash table에서) 임의의 데이터를 정수로 변환하는 함수
- ex) “kim” → hash function → 3075