Igualdade entre Objetos
Atualizado
Atualizado
Todos os objetos são "objects" e possuem acesso ao .equals, e sempre que compararmos, dará false. Pois possuirão objetos de memória diferentes.
Teremos que "criar" nosso próprio equals, contendo um hashCode.
hashCode é um código específico gerado pela linguagem para cada objeto. Se os objetos são iguais... em tese o hashCode será igual também.
Então dentro da Classe criaremos um método equals and HashCode, e poderemos escolher qual o critério a ser usado. Se quer comparar Id com Id, Username com Username e por aí vai.