Razlika između jednakih i hashCode u Javi

Ključna razlika - jednaka vs hashCode u Java
 

Jednadžba je slična operatoru ==, što treba provjeriti identitet objekta, a ne jednakost objekta. HashKod je metoda kojom klasa implicitno ili eksplicitno raščlanjuje podatke pohranjene u instanci klase na jednu hash vrijednost, a to je 32-bitni cijeli broj. ključna razlika između jednakih i hashCode u Java je li to jednaka se koristi za usporedbu dva objekta, dok se hashCode koristi u hashingu da se odluči u koju skupinu objekt treba kategorizirati.

SADRŽAJ

1. Pregled i ključne razlike
2. Što je jednako u Javi
3. Što je hashCode u Javi
4. Usporedna usporedba - jednaka je u odnosu na hashCode u Javi u tabličnom obliku
5. Sažetak

Što je jednako u Javi?

Za usporedbu dva objekta koristi se metoda jednaka. Metoda zadane jednake definirana je u objektnoj klasi. Ta je implementacija slična operatoru ==. Dvije reference objekta su jednake samo ako su usmjerene na isti objekt. Moguće je poništiti metodu jednake.

Slika 01: Java program s jednakim

Izjava System.out.println (s1.equals (s2)) dat će odgovor lažan, jer se s1 i s2 odnose na dva različita objekta. Bilo je slično izjavi System.out.println (s1 == s2);

Izjava System.out.println (s1.equals (s3)) dati će odgovor istinito jer se s1 i s3 odnose na isti objekt. Bilo je slično izjavi, System.out.println (s1 == s3);

U klasi Student ne postoji jednaka metoda. Stoga se zove jednaka klasa Objekt. Točno je prikazano samo ako referenca objekta pokazuje na isti objekt.

Slika 02: Java program s poništenim jednakim

Prema gore navedenom programu, jednaka je metoda jednaka. Objekt se predaje metodi, a tip se predava Studentu. Zatim se provjeravaju id vrijednosti. Ako su vrijednosti id slične, vratit će se istinito. Ako ne, vratit će se na pogrešno. ID-ji s1 i s2 su slični. Dakle, ispisat će istinito. ID-ji s1 i s3 su također slični, pa će se ispisati istinito.

Što je hashCode u Javi?

HashCode se koristi u hashingu da se odluči u koju skupinu objekt treba kategorizirati. Skupina objekata može dijeliti isti hashCode. Ispravna hashing funkcija može ravnomjerno rasporediti predmete u različitim skupinama.

Ispravan hashCode može imati svojstva na sljedeći način. Pretpostavimo da postoje dva objekta kao obj1 i obj2. Ako je obj1.equals (obj2) istina, tada je obj1.hashCode () jednak obj2.hashCode (). Ako je obj1.equals (obj2) lažan, nije nužno da obj1.hashCode () nije jednak obj2.hashCode (). Dva nejednaka objekta mogu također imati isti hashCode.

Slika 03: Razred učenika s jednakim i hashCode

Slika 04: Glavni program

Klasa Student sadrži metode equals i hashCode. Metoda jednaka u razredu Student primit će objekt. Ako je objekt nula, vratit će se lažno. Ako klase objekata nisu iste, vratit će se u false. Vrijednosti id-a provjeravaju se u oba objekta. Ako su slični, to će se vratiti istina. Inače će se vratiti lažno.

U glavnom programu se stvaraju objekti s1 i s2. Kada zovete s1.equals (s2), bit će istina jer je metoda equals nadjačana i provjerava ID vrijednosti dva objekta. Iako se odnose na dva objekta, odgovor je točan jer su id vrijednosti s1 i s2 iste. Kako je s1.equals (s2) istina, hashCode s1 i s2 trebaju biti jednaki. Ispis hashCode s1 i s2 daje istu vrijednost. Metoda hashCode može se koristiti s zbirkama kao što je HashMap.

Koja je razlika između jednakih i hashCode u Javi?

jednak vs hashCode u Javi

equals je metoda u Javi koja djeluje slično operateru ==, što je provjera identiteta objekta, a ne jednakosti objekata. hashCode je metoda kojom klasa implicitno ili eksplicitno raščlanjuje podatke pohranjene u instanci klase na jednu hash vrijednost.
 upotreba
Metoda jednaka koristi se za usporedbu dva objekta. Metoda se koristi u hashingu da se odluči u koju skupinu se predmet treba staviti.

Sažetak - jednako vs hashCode u Java

Razlika u equals i hashCode u Javi je da se equals koristi za usporedbu dva objekta, dok se hashCode koristi u hashingu da bi se odlučilo u koju skupinu objekt treba kategorizirati..

Referenca:

1. "Java HashCode ()." Wikipedia, Zaklada Wikimedia, 17. veljače 2018. Dostupno ovdje 
2.Harold, Elliotte Rusty. "Metoda jednake ()." Metoda jednake (), 2. studenog 2001. Dostupno ovdje