美文网首页
为什么要同时重写equals和hashCode

为什么要同时重写equals和hashCode

作者: 浩仔_Boy | 来源:发表于2021-01-06 17:43 被阅读0次

学习总结,仅供自己参考,如有不对欢迎指正

Java相关:

1.为什么要同时重写equals和hashCode?

  • 两个对象相等,hashCode一定相等
  • 两个对象不等,hashCode不一定不等
  • hashCode相等,两个对象不一定相等
  • hashCode不等,两个对象一定不等

HashSet有去重唯一的特点,若让元素都去equals比较,非常耗费性能。所以HashSet的实现引入了HashCode,先比较HashCode值,如果相等再进行equals比较,大大提升效率。所以,如果你只重写了equals而没有重写hashCode,在使用集合时可能有问题。

相关文章

网友评论

      本文标题:为什么要同时重写equals和hashCode

      本文链接:https://www.haomeiwen.com/subject/dpfmnktx.html