Patrón: objetos iguales si son iguales algunos campos
A menudo la
equivalencia no tiene más ciencia que decir que dos objetos son equivalentes si
lo son algunos de sus campos.
Ejemplo, sean
objetos que son coches
public class Coche {
private String marca;
private String modelo;
private int puertas;
private int km;
private Color color;
Si hemos definido
como iguales dos coches con igual marca, modelo y número de puertas:
@Override
public int hashCode() {
int hc = 17;
hc = 31 * hc + marca.hashCode();
hc = 31 * hc + modelo.hashCode();
hc = 31 * hc + puertas;
return hc;
}
Si queremos tener en
cuenta que alguno de los campos que son objeto pueda ser nulo:
@Override
public int hashCode() {
int hc = 17;
if (marca != null)
hc = 31 * hc + marca.hashCode();
if (modelo != null)
hc = 31 * hc + modelo.hashCode();
hc = 31 * hc + puertas;
return hc;
}
Temas relacionados
86. hashCode (método) public int hashCode()