0
我在这里遇到问题。我应该解释为什么我的字符串“ab”返回当我使用hashCode()
就可以了。字符串和哈希码需要说明
我的主要问题是我不明白s [0]具有哪个值。
S [0] * 31 ^(N-1)+ S [1] * 31 ^(N-2)+ ... + S [N-1]
有人可以解释呢? 谢谢。
我在这里遇到问题。我应该解释为什么我的字符串“ab”返回当我使用hashCode()
就可以了。字符串和哈希码需要说明
我的主要问题是我不明白s [0]具有哪个值。
S [0] * 31 ^(N-1)+ S [1] * 31 ^(N-2)+ ... + S [N-1]
有人可以解释呢? 谢谢。
假设你有一个字符串s = "ab"
。
s[0]
是 s
的第一个字母,意为"a"
等。 s
是2,s
的最后一个字母是s[1]
,它是"b"
。的字符串"ab"
哈希码是
'a'*31^1+'b'*31^0 = 'a'*31+'b'*1 = 97*31+98*1 = 3105
啊哈,所以值是ASCII ..谢谢! – KimR
这有一个XY问题的所有标记。你试图解决的问题是什么,而不是你真正问到的问题? –
真正的问题是我问的问题。在Java API中给出的公式中,我不知道s [0]或s [1]应该是什么值。如果我从公式读取 - s [0]应该给我的值1. – KimR
不,这不是你真正的问题。没有合理的“真正的问题”涉及Java的哈希码计算的内部工作。你必须努力解决一些其他问题,并且你认为乱码散列码公式是无用的。不是。 –