📜  Java中的字符.hashCode() 和示例(1)

📅  最后修改于: 2023-12-03 15:02:01.840000             🧑  作者: Mango

Java中的字符.hashCode()方法介绍和示例

在Java中,每一个对象都有一个对应的hashCode值,该值由对象的内存地址和一些固定规则计算而来。而对于字符类型,在String类中提供了一个方法,用于计算字符的hashCode值,即hashCode()方法。

hashCode()方法的定义

在JDK文档中,hashCode()方法被定义为:

public int hashCode()

该方法返回字符的hashCode值,返回值是一个int类型的整数值。

hashCode()方法的计算规则

hashCode()方法的计算规则如下:

  • 如果字符的长度为0,则返回0。
  • 如果字符的长度为1,则返回该字符的ASCII码。
  • 如果字符的长度大于1,则根据以下公式计算该字符的hashCode值:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

其中,s代表字符中的每一个字符,n代表字符的长度。

hashCode()方法示例

下面是一个示例,演示了如何在Java中使用hashCode()方法计算字符的hashCode值。

public class HashcodeExample {
    public static void main(String[] args) {
        char c1 = 'A';
        char c2 = 'a';
        char c3 = 'B';

        int hashCode1 = Character.hashCode(c1);
        int hashCode2 = Character.hashCode(c2);
        int hashCode3 = Character.hashCode(c3);

        System.out.println("HashCode of "+c1+" is "+hashCode1);
        System.out.println("HashCode of "+c2+" is "+hashCode2);
        System.out.println("HashCode of "+c3+" is "+hashCode3);
    }
}

运行以上代码,输出结果如下:

HashCode of A is 65
HashCode of a is 97
HashCode of B is 66

从结果中可以看出,字符'A'的hashCode值为65,字符'a'的hashCode值为97,字符'B'的hashCode值为66,符合hashCode()方法的计算规则。