Ho una classe Persona che sovrascrive il metodo hashCode():
in un'altra classe Elenco creo una Map in questo modo:Codice PHP:public class Persona
{
public int hashCode()
{
return nome.hashCode() + 29*cognome.hashCode();
}
private String nome;
private String cognome;
}
che riempio in questo modo:Codice PHP:Map elenco = new HashMap<Integer, Persona>();
Se ora doto la classe Elenco di un metodo cerca:Codice PHP:elenco.put(new Integer.parseInt(pers.hashCode()), pers);
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?Codice PHP:cercaPersona(String nome, String cognome)
{
int hash =nome.hashCode() + 29*cognome.hashCode();
Persona p = elenco.get(new Integer(hash));
}

Rispondi quotando
