Metoda hashCode - příklad

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 Person s metodami equals a hashCode

public class Person { 
   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(); 
   }
}