有人能告诉我int
JavaString.hashCode()
方法可以返回的最大值和最小值是多少吗?
问问题
10993 次
3 回答
8
String.hashCode ()
返回int
使用以下公式计算的:
公共 int hashCode()
返回此字符串的哈希码。
String 对象的哈希码计算为
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用 int 算术,其中
s[i]
是字符串的第i个字符,n是字符串的长度,^ 表示求幂。(空字符串的哈希值为零。)
可以使用以下常量找到最小值和最大值。
System.out.println (java.lang.Integer.MAX_VALUE); // 2147483647
System.out.println (java.lang.Integer.MIN_VALUE); // -2147483648
于 2012-07-14T00:44:16.720 回答
3
Java int 是 4 个字节,有符号(二进制补码)。-2,147,483,648 至 2,147,483,647。像所有数字类型一样,int 可以转换为其他数字类型(byte、short、long、float、double)。当有损转换完成时(例如 int 到 byte),转换是以较小类型的长度为模完成的。
于 2012-07-14T00:46:28.423 回答
2
从文档中,鉴于某些东西的提升取决于字符串的长度(据我所知,这实际上是无限的),我会说最大值和最小值必须是 Integer.MAX_VALUE (2^31 - 1) 和 Integer.MIN_VALUE (-2^31),分别。
于 2012-07-14T00:44:03.613 回答