Hash
- 임의의 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값
HashMap과 HashTable 비교
| HashMap | HashTable | |
| key와 value null 허용 |
O | X |
| Thread-safe | X | O |
| Enumeration | X | O |
| 멀티 스레드 | 부적합(비동기) | 적합(동기화 지원) |
| 해시 충돌 | 상대적으로 적게 발생 (보조 해시 함수 사용) | 상대적으로 많이 발생 (보조 해시 함수 사용 X) |
| key 중복 | X | |
| value 중복 | O | |
| 저장 방식 | key:value 형태로 저장 (Map 인터페이스를 상속받아 구현) | |
| 탐색 속도 | O(1)로 빠름 => 해시 함수에 키를 넣으면 값이 저장된 해시 값(인덱스)를 돌려주기 때문 | |
| 정의 | 키(key)에 대한 해시 값을 사용하여 값(value)을 저장하는 자료구조 | |
'알고리즘과 자료구조' 카테고리의 다른 글
| Map (0) | 2023.02.16 |
|---|---|
| Tree (0) | 2023.02.02 |
| ArrayList vs LinkedList (0) | 2023.02.02 |
| 탐색 알고리즘 (Search Algorithm) (0) | 2023.01.24 |
| itertools (순열과 조합) (0) | 2022.10.31 |
댓글