【♨Java基础】说说hashCode() 和 equals() 之间的关系?

equals() 的作用是用来判断两个对象是否相等。

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

在HashSet, Hashtable, HashMap等等这些本质是散列表的数据结构中:

  • 同一个对象(没有发生过修改)无论何时调用hashCode()得到的返回值必须一样。
  • hashCode()的返回值相等的对象不一定相等,通过hashCode()和equals()必须能唯一确定一个对象。
  • 一旦重写了equals()函数(重写equals的时候还要注意要满足自反性、对称性、传递性、一致性),就必须重写hashCode()函数。

 

参考:

posted @ 2023-03-16 12:00  残城碎梦  阅读(8)  评论(0编辑  收藏  举报