Vamos dizer que para um Aluno sem igual a outra, deve-se comparar o (String)nome e a (Int)matrícula. Como ficaria o método HashCode sobrescrito?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Vamos dizer que para um Aluno sem igual a outra, deve-se comparar o (String)nome e a (Int)matrícula. Como ficaria o método HashCode sobrescrito?
Você pode usar o IDE para gerar para você.No Intellij é ALT + INSERT -> Generate equals() and hashCode().No Eclipse é o mesmo comando, se não me engano.
Saulo, boa noite.
Na geração do eclipse ficaria assim:
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + matricula;
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
return result;
}
Saulo, HashCode é uma forma indexação. Quando mais processos para garantir que o hash (ou integral numérico) que representa o objeto seja único, mais fácil fica de encontrar o objeto.
se você sabe que um objeto do tipo foo vai gerar sempre um índice 34132422. Ao apontar direto nesse índice que você encontrará o objeto lá.
recomendo estudar estrutura de dados, aqui mesmo da Alura, já que Hashcode não tem nada com equals.