-비순차적으로 저장할 수 있는 자료구조
-수정이 가능하다.
-동일한 값이 여러번 삽입되면 하나의 값만 저장된다.
-Fast Lookup이 필요할 때 주로 쓰인다.
-Set은 요소들을 순차적으로 저장하지 않기때문에 indexing이 없다.
-해쉬값 기반의 bucket에 저장하기 때문에 중복된 값을 저장할 수 없다.
-look up(특정 값을 포함하고 있는지 확인 하는 것)이 빠르다.
-set의 총 길이와 상관없이 해쉬값 계산 후 해당 bucket을 확인하면 된다. ex) 0(1)
-중복된 값을 골라내야 할 때, 빠른 look up을 해야 할 때, 순서는 상관 없을 때
-특정 순서대로 데이터를 리턴하지 않는다.
-key 값은 중복될 수 없다.
-수정 가능하다
-Set과 비슷하게 key값의 해쉬값을 구한 후 해쉬값에 속한 bucket에 값을 저장한다.
-키와 값을 묶어서 데이터를 표현해야 할 때 유용하다.
-단방향 암호화다.
-한 번 암호화하면 복호화가 안된다.
-hash 값은 일정한 길이를 가지기 때문에 주로 임의의 길이를 갖는 임의의 데이터에 대해 고정된 길이의 데이터로 매핑할 때 사용한다.
Digit folding
입력된 문자열의 각자리의나눗셈법
해시값을 구해 버킷의 사이즈로 나누고 그 나머지를 테이블의 주소로 사용한다.(버킷의 인덱스를 초과하지 않는 인덱스를 구할 수 있다.)