小编典典

Java Good Hash Function for Strings

java

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

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


阅读 347

收藏
2020-03-11

共1个答案

小编典典

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

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

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

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