HashMap存储自定义类,需要重写自定义类的哪些方法?

重写 hashcode 与 equals 方法。

  • hashCode() 方法是一个本地 native 方法,返回的是对象引用中存储的对象的内存地址,而 equals 方法是利用 == 来比较的,也是对象的内存地址。

HashMap 中 Key 是这样比较的,先求出 Key 的 hashcode(),比较是否相等,相等在比较 equals(),若相等就认为他们是相等的。如果只重写hashcode() 不重写 equals() ,在调用 equals() 时就会比较他们的内存地址。所以必须两个方法一起重写。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容