A função hashCode gerada pelo Eclipse é boa?
O menu de origem do Eclipse possui um "método hashCode / equals", que gera funções como a mostrada abaixo.
String name;
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
CompanyRole other = (CompanyRole) obj;
if (name == null)
{
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
Se eu selecionar vários campos ao gerarhashCode()
eequals()
O Eclipse usa o mesmo padrão mostrado acima.
Eu não sou um especialista em funções hash e gostaria de saber como "bom" é a função hash gerada? Quais são as situações em que ele irá quebrar e causar muitas colisões?