美文网首页
为什么要同时重写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