2015-10-19 59 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。檢查現有類型的文檔以檢查它們是否適合存儲在一般的集合中或更具體地散列化。