Java

Monday, April 10, 2006

 

hashcode() e equals()

hashcode() e equals são métodos da classe Object. Como todos os objetos estendem impliciamente Object, eles possuem ambos os métodos. Se hashcode é sobrescrito, em alguma classe, então equals também deve ser sobrescrito, para se manter a consistência. Se duas instâncias de variáveis x e y se referem ao mesmo objeto, isto é, se a chamada de x.equals(y) retorna true, então a chamada de hashcode() para ambas as instâncias deve retornar o mesmo valor. O Modus Tollens dessa afirmação é que se a chamada de hashcode() para os dois objetos retorna valores diferentes, então esses dois objetos devem ser distintos, ou seja, a chamada de x.equals(y) deve retornar false. O método hashcode() pode ser completamente ineficiente e correto, por exemplo, se ele retorna o mesmo valor para qualquer objeto. O contrato de equals() especifica que ele deve ser reflexivo, simétrico, transitivo e consistente.

Comments: Post a Comment



<< Home

Archives

March 2006   April 2006   May 2006   July 2006   August 2006  

This page is powered by Blogger. Isn't yours?