hashcode()与equals()方法(第8周)

一:equals()的作用

  equals() 的作用是用来判断两个对象是否相等。equals() 定义在JDK的Object.java中,通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。

二:equals() 与 == 的区别是什么?

  == : 它的作用是判断两个对象的地址是不是相等即,判断两个对象是不是同一个对象。

  equals() : 它的作用也是判断两个对象是否相等但它一般有两种使用情况:
                 情况1,类没有覆盖equals()方法。则通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象。
                 情况2,类覆盖了equals()方法。一般,我们都覆盖equals()方法来两个对象的内容相等;若它们的内容相等,则返回true(即,认为这两个对象相等)。

: hashCode() 的作用

hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。

四: hashCode() 和 equals() 的关系

  • 在程序执行期间,只要equals方法的比较操作用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法必须始终如一地返回同一个整数。
  • 如果两个对象根据equals方法比较是相等的,那么调用两个对象的hashCode方法必须返回相同的整数结果。
  • 如果两个对象根据equals方法比较是不等的,则hashCode方法不一定得返回不同的整数。

部分内容摘自:https://www.cnblogs.com/skywang12345/p/3324958.html

posted @ 2018-06-30 10:59  MapleDream  阅读(101)  评论(0编辑  收藏  举报