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.