着名的JDK文档说:java.lang.String.hashCode()
String对象的哈希码计算为
Run Code Online (Sandbox Code Playgroud)s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]using
intarithmetic,其中s[i]是i字符串的**th字符,是字符串n的长度,^表示取幂.
该表达式的标准实现是:
int hash = 0;
for (int i = 0; i < length; i++)
{
hash = 31*hash + value[i];
}
return hash;
Run Code Online (Sandbox Code Playgroud)
看着这个让我觉得我正在通过算法课程沉睡.这个数学表达式如何转化为上面的代码?