【发布时间】:2010-10-23 18:27:39
【问题描述】:
java.lang.String.hashCode()famously 的 JDK 文档说:
String 对象的哈希码计算为
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]使用
int算术,其中s[i]是字符串的第*i*个字符,n是字符串的长度,^表示求幂。
这个表达式的标准实现是:
int hash = 0;
for (int i = 0; i < length; i++)
{
hash = 31*hash + value[i];
}
return hash;
看着这让我觉得我在学习算法课程时正在睡觉。该数学表达式如何转换为上面的代码?
【问题讨论】:
标签: java algorithm math hashcode