为什么在HashMap中需要重写键的hashcode和equals方法?

5
我创建了一个HashMap,将Student作为键,将String作为值。
现在我已经读过很多地方,如果将其用作HashMap的键,则必须重写equalshashcode方法。
但是我没有重写它。并在HashMap中插入了多个键值对,我也能够取回它们。
那么为什么有必要这样做呢?

你不必覆盖这些方法,但是你使用的类(例如String)必须覆盖这些方法,并且它已经这样做了。只有在创建自己的键类时才需要这样做。顺便说一句,大多数IDE都可以为您生成这些方法(因此您不需要自己编写)。 - Peter Lawrey
1
那个其他问题的回答都没有具体解决这个问题,因为它不是重复的。请加入我一起投票重新打开它,撤销错误的关闭。 - Dawood ibn Kareem
@tDavid,我在阅读所有答案后才提出了这个问题。我没有找到我的问题的答案。 - Raj
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接