Quote Originariamente inviata da NoNameoN Visualizza il messaggio
codice:
	private HashMap<Utente, String> utenti = new HashMap<Utente, String>();
Da quanto si deduce, hai usato oggetti Utente come "chiavi" della map. Questo implica che la classe Utente DEVE ridefinire correttamente sia equals(), sia hashCode(). E in modo appropriato in modo da garantire il "contratto" che esiste per definizione tra questi due metodi.

Comunque l'approccio di usare oggetti Utente come chiavi non è particolarmente buono, sarebbe stato molto meglio usare:
codice:
	private HashMap<String, Utente> utenti = new HashMap<Utente, String>();

Ovvero una mappa chiave:email, valore:Utente

Quote Originariamente inviata da NoNameoN Visualizza il messaggio
codice:
			if(utenti.get(u) == utenti.get(key)
Questo comunque è sbagliato, il contenuto delle stringhe (e degli oggetti in generale) NON si confronta con == ma con equals.