[kotlin] 해싱(Hashing) 기법과 관련된 자료 구조들
해싱은 데이터를 빠르게 저장하고 검색하기 위한 효율적인 자료 구조 기법 중 하나입니다. 해싱을 이용하면 데이터를 저장하는 공간을 최소화하고 빠른 검색을 가능하게 합니다. 해싱을 구현하기 위해 사용되는 여러 가지 자료 구조가 있습니다. 아래에서 몇 가지 주요한 자료 구조를 살펴보겠습니다.
해시 테이블(Hash Table)
해시 테이블은 해시 함수를 사용하여 데이터를 저장하고 검색하는 자료 구조입니다. 해시 함수를 통해 데이터의 키를 해시 값으로 변환한 후, 해당 해시 값을 인덱스로 사용하여 데이터를 저장합니다. 해시 테이블은 평균적으로 상수 시간(O(1))에 데이터를 검색할 수 있는 장점을 가지고 있습니다.
해시 맵(Hash Map)
해시 맵은 키-값 쌍을 저장하고 관리하는 자료 구조로, 각 키에 대한 해시 값을 계산하여 해당 위치에 값을 저장합니다. 해시 맵은 Java의 HashMap
, Kotlin의 HashMap
과 같은 언어에서 기본적으로 제공되는 자료 구조입니다.
해시 집합(Hash Set)
해시 집합은 중복을 허용하지 않는 데이터의 컬렉션을 해싱을 통해 구현한 자료 구조입니다. 각 원소를 해시 값을 계산하여 해당 위치에 저장하며, 중복된 값이 추가되는 것을 방지합니다. Java에서는 HashSet
, Kotlin에서는 HashSet
과 같은 자료 구조가 제공됩니다.
이러한 해싱과 관련된 자료 구조들은 빠른 검색과 데이터의 효율적인 관리를 위해 널리 사용되고 있습니다.
참고 문헌:
- https://en.wikipedia.org/wiki/Hash_table
- https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
- https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-hash-map/