V těle hashCode s oblibou „přehráváme“ (delegujeme) řešení na volání hashCode jednotlivých složek objektu - a to těch, které figurují v equals:
Obrázek 2. Třída Clovek s metodami equals a hashCode
public class Person implements Comparable {
private String firstname;
private String surname;
public Person (String j, String p) {
firstname = j;
surname = p;
}
public boolean equals(Object o) {
if (o instanceof Person) {
Person c = (Person)o;
// dva lidé se (v našem případě) rovnají, mají-li stejná příjmení
return surname.equals(c.surname);
} else {
// porovnáváme-li osobu s objektem jiného typu, nikdy se nerovnají
return false;
}
}
public int hashCode() {
return surname.hashCode();
}
}