本帖最后由 曹冬明 于 2014-4-16 19:58 编辑
- hashCode
- public int hashCode()
- 返回此字符串的哈希码。String 对象的哈希码根据以下公式计算:
- s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
-
- 使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。)
复制代码 上面是我从API中查到的String类的哈希值算法,根据上面的算法"BB"的哈希值应该是'B'*31+'B',"Aa"的哈希值是'A'*31+'a',A,B,a,b的ASCII值分别是,65,66,97,98,所以"BB"的哈希值为66*31+66正好等于"Aa"的哈希值65*31+97,我想应该是这样的!
|