equals()与hashCode()

时间:2021-12-24 15:31:29

两个都可以用来判断两个对象是否相同一致。

  • hashCode相同的不一定是同一个对象;hashCode不同的一定不是相同对象
  • equals相同的一定是相同对象,是绝对可靠的

既然equals这么可靠,那为什么还要用hashCode进行比较呢?

由于equals方法对很多条件进行了比较,因此性能比hashCode差。

一般比较两个对象是否相同的方法是:
先比较hashCode,不同则不是相同对象;
否则再用equals比较

这个方法普遍用于集合,例如HashMap的get、put方法都是这样比较两个key是否一致的