
QuickHashStringIntHash::add 메서드는 String 키와 Int 값 쌍을 저장하는 데 사용됩니다. 메서드의 동작 원리는 다음과 같습니다.
1. String 키를 해시 함수에 입력하여 해시 코드를 계산합니다.
2. 해시 코드를 사용하여 해시 테이블의 인덱스 값을 계산합니다.
3. 인덱스 값에 해당하는 해시 테이블의 슬롯에 Int 값 쌍을 저장합니다.
해시 충돌이 발생한 경우, 메서드는 다음과 같이 처리합니다.
1. 충돌이 발생한 인덱스 값에 해당하는 해시 테이블의 슬롯에 저장된 Int 값 쌍을 확인합니다.
2. 확인된 Int 값 쌍과 새로운 Int 값 쌍을 비교합니다.
3. 동일한 키가 이미 존재하는 경우, 새로운 Int 값 쌍을 덮어씁니다.
4. 동일한 키가 존재하지 않는 경우, 새로운 Int 값 쌍을 저장합니다.
QuickHashStringIntHash::add 메서드에서 사용하는 해시 함수는 FNV-1a 해시 함수를 사용합니다. FNV-1a 해시 함수는 32비트 해시 함수로, 다음과 같은 특징을 가지고 있습니다.
1. 해시 함수는 상수 시간 복잡도를 가지고 있습니다.
2. 해시 함수는 충돌이 적게 발생합니다.
3. 해시 함수는 키의 순서에 영향을 받지 않습니다.
FNV-1a 해시 함수의 알고리즘은 다음과 같습니다.
1. 초기 해시 코드를 2166136261로 설정합니다.
2. 키의 각 바이트를 확인합니다.
3. 확인된 바이트를 XOR 연산을 통해 해시 코드에 추가합니다.
4. 해시 코드를 16777219로 곱합니다.
5. 결과를 해시 코드에 저장합니다.
6. 키의 모든 바이트를 확인한 후, 최종 해시 코드를 반환합니다.
2025-05-07 19:47