2015-10-19 63 views
2

我正在寻找最佳实践,我应该重写hashcode和equalse每当我在java中使用映射?或者对于Map<String, String>它不是必需的?字符串映射的最佳实践,覆盖hashcode和equlas

+1

尝试覆盖'String'的equals和hashcode。这是不可能的,因为String类被声明为final。如果equals方法被对象类继承,或者如果您从另一个对象继承,并且需要比较这个新类中的其他信息,则只应该重写'equals'和'hashcode' – SomeJavaGuy

回答

3

字符串是一个API类,你不能修改,你甚至不能扩展它们,因为它们是final。 API具有最佳的equals和hash代码实现。先锋并使用它们。

1

您不必如果已经有一个很好的String就是这种情况。事实上,你不能重写String的方法,因为它是final。但是,如果你定义了自己的类,并且你想将它的对象存储在一个集合中,那么你必须编写一个好的方法hashCode/equals。检查现有类型的文档以检查它们是否适合存储在一般的集合中或更具体地散列化。