Java hashCode方法最大返回值

问题描述 投票:0回答:3

有人可以告诉我 Java

int
方法可以返回的最大和最小
String.hashCode()
值是多少吗?

java hash
3个回答
9
投票

String.hashCode()
返回使用以下公式计算的
int

public 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

3
投票

Java int 是 4 个字节,有符号(二进制补码)。 -2,147,483,648 至 2,147,483,647。与所有数字类型一样,int 可以转换为其他数字类型(字节、短整型、长整型、浮点型、双精度型)。当完成有损转换(例如 int 到 byte)时,转换将以较小类型的长度为模完成。


2
投票

从文档中,考虑到某些东西的幂取决于字符串的长度(据我所知,这实际上是无限的),我想说最大值和最小值必须是 Integer.MAX_VALUE (2^分别为 31 - 1) 和 Integer.MIN_VALUE (-2^31)。

© www.soinside.com 2019 - 2024. All rights reserved.