我查了许多关于hashcode和equals的区别,以及在复写equals时必须复写hashcode,但我有一个疑问,可不可以只复写hashcode,通过返回各个成员的hashcode来判断是否对象相同?

解决方案 »

  1.   

    两个对象的hashCode相同,并不一定表示两个对象就相同,只能够说明这两个对象在散列存储结构中,他们“存放在同一个篮子里”。同一个篮子可能有多个对象(不超过3个),所以还要配合equals判断
      

  2.   

    两个对象的hashCode相同,但是并不一定表示两个对象相等,hashcode值是初步判断,若两个对象的hashcode值相等,则会在进行equals判断,才能判断两个对象是否一样
      

  3.   

    两个对象的hashcode()相同两个对象不一定相等,两个对象的hashcode不相等,两个对象一定不相同