다른 컬렉션이나 자료구조에 대해 더 알아보고 싶다면 아래의 링크로 들어오시라🤗
해싱과 해시함수
해싱은 해시함수로 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다.
해시함수는 데이터의 저장 위치를 알려주기 대문에 데이터가 많아도 원하는 데이터를
빠르게 찾을 수 있다.
해싱을 구현한 컬렉션은 HashSet, HashMap, Hashtable등이 있다
Hashtable은 HashMap의 구버전으로 호환성 문제로 남겨둔 것이기 때문에 사용을 지양하자.
해싱의 구조
해싱에서 사용하는 자료구조는 배열과 LinkedList의 자료구조의 조합으로 되어있다.
배열은 크기가 커져도 원하는 요소가 몇 번째에 있는지만 알면 원하는 값을 빠르게 찾을 수 있고
링크드 리스트는 중간 데이터의 변경이 강하지만 데이터가 많아지면 느려지는게 단점이다.
이 두가지를 합쳐 강점을 뽑아낸게 Hashsing의 자료구조 라고 생각한다.
1️⃣ 검색하려는 값의 키로 해시함수를 호출한다.
2️⃣ 해시함수의 계산결과(해시코드)로 해당 값이 저장되어 있는 링크드 리스트를 찾는다.
3️⃣ 링크드 리스트에서 검색한 키와 일치하는 데이터를 찾는다.
댓글