Quote Originariamente inviata da andbin Visualizza il messaggio
Se ridefinisci equals in una tua classe es. in IndirizzoPersona, sei tu che puoi (e devi) stabilire COSA confrontare per indicare se due oggetti sono "equivalenti". Solo nome e cognome? Anche email? Anche telefono?
Quando per te due oggetti IndirizzoPersona sono in pratica "uguali"?


Riguardo la identità vs contenuto, la identità si riferisce alla uguaglianza di reference.

Integer a = new Integer(123);
Integer b = new Integer(123);
Integer c = a;


a == b dà false. Hanno lo stesso contenuto (valore 123) ma sono due oggetti DISTINTI, il reference non è uguale. Hanno identità differenti.

a == c dà true perché le due variabili hanno lo stesso reference (l'oggetto è uno solo, che lo "vedi" da a o da c).



Potresti "sorvolare" su quest'aspetto. hashCode() si usa principalmente nelle collezioni basate su hash-table.
scusami ma non è esattamente quello che ho fatto io creando il mio metodo sonoUguali?