采访拼图 - 我们为什么要覆盖hashCode和equals方法

时间:2014-09-10 09:35:30

标签: java memory-management hashmap equals hashcode

我接受了采访,面试官问了一个问题

访问者 - 如果我们要将此类的对象用作HashMap密钥,为什么要覆盖类的hashCode和equals方法。

我 - 我告诉他完整的流程。 HashMap如何在内部使用hashcode和equals方法(Bucket logic)。

但是他对我的回答并不满意。他告诉我这只是基本用途,你已经完全解释了它,但我想知道它的先进重要性不是基本的(他也给了我一些线索 - 它有助于记忆管理)。

我在互联网上搜索过但我得不到答案。

还有其他重要性吗?如果是的话是什么?

链接/文档将受到高度赞赏。

提前致谢....

1 个答案:

答案 0 :(得分:1)

这可能有帮助吗? (摘自http://apmblog.compuware.com/2011/12/15/the-top-java-memory-problems-part-2/

  

equal和hashcode

的实现不正确      

哈希码方法和内存问题之间的关系是   乍一看并不明显。但是,如果我们考虑在哪里   哈希码方法非常重要,这一点变得更加清晰。

     

hashcode和equals方法在哈希映射中用于插入   并根据其键找到对象。但是,如果执行   操作员有故障,找不到现有的条目和新的条目   继续加入。

     

虽然负责内存问题的集合可以   确定很快,可能很难确定为什么   问题发生了。