Java hashCode方法的最大返回值

时间:2012-07-14 00:39:10

标签: java hash

有人能告诉我Java int方法可以返回的最大和最小String.hashCode()值是什么?

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

从文档中可以看出,提升某事物的能力取决于字符串的长度(据我所知,实际上是无限制的),我会说最大值和最小值必须是Integer.MAX_VALUE(分别为2 ^ 31 - 1)和Integer.MIN_VALUE(-2 ^ 31)。

答案 2 :(得分:2)

Java int是4个字节,有符号(两个补码)。 -2,147,483,648至2,147,483,647。像所有数字类型一样,int可以转换为其他数字类型(byte,short,long,float,double)。当完成有损转换(例如,int到byte)时,转换以较小类型的长度为模。