Sobes.tech
Junior — Middle

Milyen eredeti adatok használhatók a hashCode értékének meghatározásához egy objektumban?

sobes.tech MI

Válasz az MI-től

Egy objektum hashCode értéke általában az objektum azon mezői alapján kerül kiszámításra, amelyek meghatározzák egyediségét és egyenlőségét. Java-ban fontos, hogy az equals() metódusban részt vevő mezők ugyanúgy szerepeljenek a hashCode() számításánál, hogy a kollekciók (például HashMap, HashSet) helyesen működjenek.

Például, ha egy objektum egy személyt reprezentál az id, name és age mezőkkel, és az egyenlőség csak az id alapján van meghatározva, akkor a hashCode-nak is az id-n alapulnia kell.

Példa:

@Override
public int hashCode() {
    return Objects.hash(id);
}

Ha minden mezőt figyelembe veszünk, akkor a következőt lehet használni:

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

A fő szabály az, hogy az equals()-ben részt vevő mezőket a hashCode()-ban is figyelembe kell venni, hogy biztosítsuk a hash-alapú adatszerkezetek helyes működését.