2014-01-07 38 views
1

爲什麼總是在重寫equals()時重寫hashcode()? 舉個例子..Java對象中的HashCode和Equals方法

+4

[輕輕點我](http://www.javaworld.com/article/2074996/hashcode-and-equals-method-in-java-object---a-pragmatic-concept.html)。 – Maroun

+1

它們不可互換,這使您的問題變得毫無意義。這就像問「String'和普通的'List'有什麼區別? –

+0

http://stackoverflow.com/questions/17027777/relationship-between-hashcode-and-equals-method-in-java – ankurtr

回答

1

Object類中只有一個equals()hashcode()方法。沒有正常或不正常的方法版本。

如果您使用任何與散列相關的數據結構(如HashMap或HashSet),那麼您需要重寫hashcode()方法。但是,一般來說,只要覆蓋equals(),就可以覆蓋hashcode()。

相關問題