小编典典

使用String hashCode()方法?

java

改善这个问题

来自链接:

http://www.tutorialspoint.com/java/java_string_hashcode.htm

Java中的hashCode和equals方法之间的关系

好的hashCode()实现

但是我不了解哈希码。

这是一个例子:

public class StringDemo {
    public static void main(String args[]){
        String strob1="first string";
        System.out.println(strob1.hashCode());
    }

    }

这个简单的程序给我输出:-5468287

谁能告诉我:它是如何给我的输出:-5468287


阅读 217

收藏
2020-11-30

共1个答案

小编典典

字符串的
哈希码

计算如下:

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

使用int算术,其中字符串s[i]i第-个字符,字符串n的长度,并^表示 。(空字符串的哈希值为零。)

因此,根据
Java语言规范15.8.2

,此整数计算的溢出很容易发生,结果为负数:

如果整数加法溢出,则结果是数学和的低阶位,以某种足够大的二进制补码格式表示。如果发生溢出,则结果的符号与两个操作数值的数学和的符号不同。

2020-11-30