Java hashcode and equals
2018-11-22 本文已影响0人
JavaHub
Java中equals()和hashCode()有一个契约:
- 如果两个对象相等的话,它们的hash code必须相等;
String a = "meek";
String b = "meek";
System.out.println(a == b);
System.out.println("a :"+a.hashCode()+" b:"+b.hashCode());
运行结果:
true
a :3347518 b:3347518
- 但如果两个对象的hash code相等的话,这两个对象不一定相等
String a1 = new String("meek");
String b1 = new String("meek");
System.out.println("a1 :"+a.hashCode()+" b1:"+b.hashCode());
System.out.println(a1 == b1);
运行结果:
a1 :3347518 b1:3347518
false