hashcode()与equals()区别

hashcode()与equals()区别

hashcode()

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

  • HashCode的存在主要是为了查找的快捷性

  • hashCode()定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。

equals()

  • equals它的作用也是判断两个对象是否相等,如果对象重写了equals()方法,比较两个对象的内容是否相等;如果没有重写,比较两个对象的地址是否相同,价于“==”。
  • 同样的,equals()定义在JDK的Object.java中,这就意味着Java中的任何类都包含有equals()函数。

联系

  • 如果两个对象equals相等,那么这两个对象的HashCode一定也相同

  • 如果两个对象的HashCode相同,不代表两个对象就相同,只能说明这两个对象在散列存储结构中,存放于同一个位置

  • 重写equals时必须重写hashCode方法, 用来保证equals相同的情况下hashcode也是相同的。


版权声明:本文为qq_29087399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。