Java hashcode and equals

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容