How does a ArrayList's contains() method evaluate objects?

后端 未结 9 1203
伪装坚强ぢ
伪装坚强ぢ 2020-11-22 10:32

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

9条回答
  •  独厮守ぢ
    2020-11-22 11:00

    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. :)

提交回复
热议问题