繁体   English   中英

我应该在 HashMap,Java 中为 String 键覆盖 equals() 和 hashCode() 吗?

[英]Should I override equals() and hashCode() for String key in HashMap, Java?

我正在使用HashMap<String, MySuperClass>集合,其中的键是String格式。 一般来说,为了使用HashMap集合,需要覆盖equals()hashCode()

我想澄清一下,我应该为StringIntegerHashMap其他“原始”类覆盖equals()hashCode()吗?

不。 String s(和Integer s)已经实现了equalshashCode ,并且您无法为它们覆盖它,因为这些类是final ,因此不可扩展。

当您使用类作为HashMap (或HashSetHashtable )的键时,您应该确保它覆盖hashCode()equals(Object) JDK 的String 、原始包装器(例如IntegerLong等)和许多其他包装器已经为您完成了这项工作,因此您无需担心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM