Say I create one object and add it to my ArrayList
. If I then create another object with exactly the same constructor input, will the contains()
me
Generally you should also override hashCode()
each time you override equals()
, even if just for the performance boost. HashCode()
decides which 'bucket' your object gets sorted into when doing a comparison, so any two objects which equal()
evaluates to true should return the same hashCode
value()
. I cannot remember the default behavior of hashCode()
(if it returns 0 then your code should work but slowly, but if it returns the address then your code will fail). I do remember a bunch of times when my code failed because I forgot to override hashCode()
though. :)