在java中,有一个这样的规定,就是两个相同的对象(即equals运算为true),它们的hash code也必须相同。在Object类中有一个hashCode方法,可以调用它来查看对象的hash code。下面举例说明。
package test;
public class Test {
public static void main(String args[]){
String str1 = "aaa";
String str2 = str1;
String str3 = "bbb";
System.out.println(str1.equals(str2));
System.out.println("str1.hashCode():"+str1.hashCode());
System.out.println("str2.hashCode():"+str2.hashCode());
System.out.println("str3.hashCode():"+str3.hashCode());
}
}
上例的运行结果为
true
str1.hashCode():96321
str2.hashCode():96321
str3.hashCode():97314
可以看到,str1和str2做equals运算时为true,它们的hash code也是一样的。