Quote Originariamente inviata da iTuring Visualizza il messaggio
ma di quale contratto parli?
E dopo che hai letto la documentazione che ti ha indicato LeleFT, prova a pensare perché la seguente semplice classe viola il contratto alla grande.

codice:
class Persona {
    private final String nome;

    public Persona(String nome) {
        this.nome = nome;
    }

    // ... getter ... altro ....

    public boolean equals(Object o) {
        if (o instanceof Persona) {
            Persona altraPersona = (Persona) o;
            return nome.equals(altraPersona.nome);
        } else {
            return false;
        }
    }
}
Quote Originariamente inviata da iTuring Visualizza il messaggio
perchè si utilizza hashCode ?
hashCode() viene usato principalmente nelle collezioni basate internamente su una struttura dati hash-table. Nel framework standard, principalmente nelle collezioni: HashMap, HashSet, LinkedHashMap e LinkedHashSet.