开发者社区> 问答> 正文

[@徐雷frank][¥20]重写equals问题

重写equals方法时,为什么还要重写hashCode方法?

展开
收起
1695742163926034 2018-11-14 10:56:33 1941 0
1 条回答
写回答
取消 提交回答
  • JAVA程序媛,欢迎交流!

    在普通的业务场景里,可能没用上hashcode,所以hashcode的重要性不是很明显。
    但是对于使用到hashset, hashmap之类的场景时,hashcode就很重要了,因为在这些数据结构里写入和查找一个对象,都是先考虑hashcode,再考虑equals的。默认的hashcode是内存地址换算的,每个对象都不一样。例如:如果业务上认为value=1的两个对象是相等的,而没有重写hashcode方法,就会导致放入hashset,hashmap后,无法按这个字段来找回相等的对象。

    2019-07-17 23:14:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载