Sobes.tech
Junior — Middle

Da li je moguće da dva objekta, za koje se smatra da nisu jednaki prema equals, imaju istu vrednost hashCode?

sobes.tech АИ

Одговор од АИ

Da, moguće je. U Javi, ugovor metoda equals() i hashCode() zahteva da ako su dva objekta jednaka prema equals(), onda moraju imati isti hashCode(). Ali obrnuto nije obavezno: dva objekta sa istim hashCode() mogu biti različiti prema equals().

To je povezano s tim da hashCode() vraća celobrojnu vrednost fiksne veličine, i različiti objekti mogu imati kolizije — isti hash.

Na primer, u kolekcijama poput HashMap ili HashSet, prvo se porede hashCode(), a zatim se koristi equals() za precizno određivanje jednakosti objekata.