String和Hashcode需要解释

时间:2015-04-28 10:55:59

标签: string hashcode

我这里有问题。我应该解释为什么当我使用hashCode()时,我的字符串" ab" 会返回 3105

我的主要问题是我不明白哪个值,即[0]。

s [0] * 31 ^(n-1)+ s [1] * 31 ^(n-2)+ ... + s [n-1]

有人可以解释一下吗? 感谢。

1 个答案:

答案 0 :(得分:1)

假设你有一个字符串s = "ab"

  1. s[0]是第一个字母 s,意为"a",等等 对于长度为n的字符串,最后一个索引将为n-1。即 s的长度为2,s的最后一个字母为s[1] "b"
  2. ABC中的每个字母都有一个数字ascii值,您可以在ascii table中看到。
  3. 字符串"ab"的哈希码是

    'a'*31^1+'b'*31^0 = 'a'*31+'b'*1 = 97*31+98*1 = 3105