在Java中,哈希代码用于String对象被计算为
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用int算术,其中s[i]是字符串的i第四个字符,是字符串n的长度,并^指示指数。
为什么31被用作乘数?
我知道乘数应该是一个相对较大的素数。那么为什么不是29,或37,甚至97?
相似问题