开发者社区 问答 正文

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

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

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

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

    2019-07-17 23:14:07
    赞同 展开评论
问答地址: