黑马程序员技术交流社区

标题: 对object类中的equals 和hashcode的方法的特点的理解 [打印本页]

作者: 崔仁军    时间: 2012-4-27 20:20
标题: 对object类中的equals 和hashcode的方法的特点的理解
1. 关于Object 类的equals 方法的特点
  a  自反性:x.equals(x)应该返回true
   b 对称性:x.equals(y)为true ,那么y.equals(x)也为true 。
  c 传递性:x.equals(y)为 true 并且y.equals(z)为true ,那么x.equals(z)也应该为true 。
  d 一致性:x.equals(y)的第一次调用为true ,那么x.equals(y)的第二次、第三次、第n 次调用也应该为true ,前提条件是在比较之间没有修改x 也没有修改y 。
  e 对于非空引用x ,x.equals(null)返回false 。
2 关于Object 类的hashCode()方法的特点:   
  a  在Java  应用的一次执行过程当中,对于同一个对象的 hashCode 方法的多次调用,他们应该返回同样的值 (前提是该对象的信息没有发生变化)。
  b  对于两个对象来说,如果使用equals 方法比较返回true,那么这两个对象的hashCode 值一定是相同的。
  c  对于两个对象来说,如果使用equals 方法比较返回false ,那么这两个对象的hashCode 值不要求一定不同 (可以相同,可以不同),但是如果不同则可以提高应用的性能。
  d 对于Object 类来说,不同的Object 对象的hashCode 值是不同的(Object 类的hashCode 值表示的是对象的地址)。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2