Ho una classe Persona che sovrascrive il metodo hashCode():
Codice PHP:
public class Persona
{
    public 
int hashCode()
    {
        return 
nome.hashCode() + 29*cognome.hashCode();
    }

    private 
String nome;
    private 
String cognome;

in un'altra classe Elenco creo una Map in questo modo:
Codice PHP:
 Map elenco = new HashMap<IntegerPersona>(); 
che riempio in questo modo:
Codice PHP:
elenco.put(new Integer.parseInt(pers.hashCode()), pers); 
Se ora doto la classe Elenco di un metodo cerca:
Codice PHP:
cercaPersona(String nomeString cognome)
{
    
int hash =nome.hashCode() + 29*cognome.hashCode();
    
Persona p elenco.get(new Integer(hash));

la domanda è: la classe Elenco non dovrebbe conoscere come è implementato il metodo hashCode() di Persona! Dunque come si risolve questo problema di ricerca nella Map?