Sobes.tech
Junior

Cosa fa il metodo equals() in Java?

sobes.tech AI

Risposta dell'AI

Il metodo equals() in Java viene utilizzato per confrontare gli oggetti per uguaglianza. Per impostazione predefinita, nella classe Object, confronta i riferimenti agli oggetti (verifica se due variabili puntano allo stesso oggetto in memoria).

Le classi possono ridefinire il metodo equals() per implementare una logica di confronto per valore. Ciò significa che due oggetti diversi sono considerati uguali se i loro campi o stato sono equivalenti.

Quando si ridefinisce equals(), è importante anche ridefinire il metodo hashCode(), rispettando il contratto: se due oggetti sono uguali secondo equals(), i loro hashCode() devono essere uguali.

Esempio di ridefinizione:

public class Person {
    private String name;
    private int age;

    // costruttore e getter

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
               Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}