Junior — Middle
Come è implementato il metodo equals in Java e come viene usato per confrontare gli oggetti?
sobes.tech AI
Risposta dell'AI
In Java, il metodo equals() è definito nella classe Object e serve per confrontare gli oggetti per uguaglianza logica. Per impostazione predefinita, confronta i riferimenti (cioè verifica se due variabili puntano allo stesso oggetto).
Per un confronto corretto del contenuto degli oggetti, le classi di solito ridefiniscono il metodo equals(), per confrontare i campi significativi degli oggetti.
Esempio di ridefinizione di equals():
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // verifica di identità
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) && field2 == other.field2;
}
È importante che, quando si ridefinisce equals(), si ridefinisca anche hashCode(), per garantire il corretto funzionamento degli oggetti nelle collezioni, ad esempio, in HashMap.
Utilizzo:
MyClass a = new MyClass(...);
MyClass b = new MyClass(...);
if (a.equals(b)) {
// gli oggetti sono considerati uguali per contenuto
}