해시테이블이란?
- Key, Value를 이용하여 만들어진 자료 구조
- 검색하고자 하는 key값을 입력받고 해쉬 함수를 돌려서 받은 해쉬 코드를
인덱스로 환산을하여 데이터에 접근하는 방식인 자료구조
배열 vs 해시테이블
배열
people = [
{name:"john", age=24},
{name:"hoon", age=21},
{name:"hyeon", age=34},
{name:"superman", age=44},
]
- 만약 hyeon의 나이를 알고 알고 싶으면 선형검색(순차적으로 검색하는 것)을 통하여 처음부터 순차적으로 배열을 탐색하게 된다. 이것은 배열 내 원소가 많아지면 많아질수록 시간이 오래 걸리게 될 것이다.
해시테이블
people = {
john : 24,
hoon : 21,
hyeon : 34,
superman : 44
}
- 위 배열의 선형검색의 시간복잡도의 단점을 해결하려면 위와 같은 구조로 프로그래밍 하면 된다. 왼쪽에 있는 john, hoon, hyeon, superman이 key값이며, 이 키를 통하여 원하는 value값을 바로 찾아낼 수 있다.
- 해쉬코드로 바로 데이터에 다이렉트로 접근하기때문에 배열보다 훨씬 빨리 접근이 가능