当前位置: 首页 > 面试题库 >

Java Good Hash Function for Strings

冷越泽
2023-03-14
问题内容

我试图为字符串想出一个很好的哈希函数。而且我当时想对字符串中前五个字符的unicode值进行汇总可能是个好主意(假设它有五个,否则在结尾处停止)。那是一个好主意,还是一个坏主意?

我正在用Java进行此操作,但我无法想象这会带来很大的不同。


问题答案:

通常哈希不会做算术,否则stoppots将具有相同的哈希值。

并且你不会将其限制为前n个字符,因为否则househouse将具有相同的哈希值。

通常,哈希采用值并将其乘以质数(使其更有可能生成唯一的哈希),因此你可以执行以下操作:

int hash = 7;
for (int i = 0; i < strlen; i++) {
    hash = hash*31 + charAt(i);
}


 类似资料:

相关阅读

相关文章

相关问答