java – 字符串的好哈希函数

我想为一个好的哈希函数的字符串。我认为可能是一个好主意,总结字符串中前五个字符的unicode值(假设它有五个,否则停止在它结束的位置)。这是一个好主意,还是这是一个坏主意?

我在Java做这个,但我不会想象,这将有很大的区别。

通常哈希不会做总和,否则停止和pots将有相同的哈希。

并且您不会将其限制为前n个字符,因为否则房子和房子将具有相同的散列。

一般来说,哈希值取值,并将其乘以一个素数(使其更可能生成唯一的哈希)所以你可以做类似:

int hash = 7;
for (int i = 0; i < strlen; i++) {
    hash = hash*31 + charAt(i);
}
翻译自:https://stackoverflow.com/questions/2624192/good-hash-function-for-strings

转载注明原文:java – 字符串的好哈希函数