Razlika Između Jednakih I HashCode U Javi

Sadržaj:

Razlika Između Jednakih I HashCode U Javi
Razlika Između Jednakih I HashCode U Javi

Video: Razlika Između Jednakih I HashCode U Javi

Video: Razlika Između Jednakih I HashCode U Javi
Video: Java. Методы equals и hashCode. 2024, Svibanj
Anonim

Ključna razlika - jednako je u odnosu na hashCode u Javi

Jednakost je slična operateru ==, koji treba testirati identitet objekta, a ne jednakost objekta. HashCode je metoda kojom klasa implicitno ili eksplicitno raščlanjuje podatke pohranjene u instanci klase u jednu hash vrijednost, koja je 32-bitni cjeloviti znak. Ključna razlika između equals i hashCode u Javi je ta što se equals koristi za usporedbu dvaju objekata, dok hashCode služi za hashiranje da bi se odlučilo u koju će grupu objekt biti kategoriziran.

SADRŽAJ

1. Pregled i ključna razlika

2. Što je jednako u Javi

3. Što je hashCode u Javi

4. Usporedna usporedba - jednako u odnosu na hashCode u Javi u tabličnom obliku

5. Sažetak

Što je jednako u Javi?

Metoda jednaka koristi se za usporedbu dvaju objekata. Zadana metoda jednaka definirana je u klasi objekta. Ta je implementacija slična operateru ==. Dvije reference na objekt jednake su samo ako upućuju na isti objekt. Moguće je nadjačati metodu jednakosti.

Razlika između jednakih i hashCode u Javi
Razlika između jednakih i hashCode u Javi

Slika 01: Java program s jednakima

Izjava System.out.println (s1.equals (s2)) dat će odgovor netačno 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)) dat će odgovor istinito jer se s1 i s3 odnose na isti objekt. Bilo je slično izjavi, System.out.println (s1 == s3);

U razredu Student ne postoji jednaka metoda. Stoga se pozivaju jednaki u klasi Object. Tačno se prikazuje samo ako referenca objekta upućuje na isti objekt.

Razlika između jednakog i hashCode u Javi slika 02
Razlika između jednakog i hashCode u Javi slika 02

Slika 02: Java program s poništenim jednakima

Prema gore navedenom programu, metoda equals je nadjačana. Objekt se predaje metodi i on se ulijeva u Student. Zatim se provjeravaju vrijednosti id. Ako su vrijednosti id slične, vratit će true. Ako nije, vratit će se false. ID-ovi s1 i s2 su slični. Dakle, ispisat će se istinito. ID-ovi s1 i s3 također su slični, pa će se ispisati točno.

Što je hashCode u Javi?

HashCode koristi se za raspršivanje da bi se odlučilo u koju će grupu objekt biti kategoriziran. Skupina objekata može dijeliti isti hashCode. Ispravna funkcija raspršivanja može ravnomjerno rasporediti objekte u različite skupine.

Ispravan hashCode može imati svojstva kako slijedi. Pretpostavimo da postoje dva objekta kao što su obj1 i obj2. Ako je obj1.equals (obj2) točno, tada je obj1.hashCode () jednako obj2.hashCode (). Ako je obj1.equals (obj2) netačno, nije neophodno da obj1.hashCode () nije jednako obj2.hashCode (). Dva nejednaka objekta također mogu imati isti hashCode.

Razlika između jednakog i hashCode u Javi slika 03
Razlika između jednakog i hashCode u Javi slika 03

Slika 03: Razred učenika s jednakostima i hashCode

Ključna razlika između equals i hashCode u Javi
Ključna razlika između equals i hashCode u Javi

Slika 04: Glavni program

Predavanje Student sadrži metode jednakosti i hashCode. Metoda jednakih u razredu Student primit će objekt. Ako je objekt null, vratit će false. Ako klase objekata nisu iste, vratit će se false. Vrijednosti id provjeravaju se u oba objekta. Ako su slični, vratit će se istina. Inače će se vratiti lažno.

U glavnom programu stvaraju se objekti s1 i s2. Prilikom pozivanja s1.equals (s2) dat će true jer je metoda equals nadjačana i provjerava vrijednosti id dvaju objekata. Iako se odnose na dva objekta, odgovor je istinit jer su id vrijednosti s1 i s2 iste. Kako je s1.equals (s2) istinito, hashCode s1 i s2 trebao bi biti jednak. Ispis hashCodea s1 i s2 daje istu vrijednost. Metoda hashCode može se koristiti s zbirkama kao što je HashMap.

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

Diff Article Sredina prije tablice

jednako vs hashCode u Javi

equals je metoda u Javi koja djeluje slično operateru ==, a to je testiranje identiteta objekta, a ne jednakosti objekta. hashCode je metoda kojom klasa implicitno ili eksplicitno razgrađuje podatke pohranjene u instanci klase u jednu hash vrijednost.
Upotreba
Metoda jednaka koristi se za usporedbu dva objekta. Metoda se koristi za raspršivanje da bi se odlučilo u koju skupinu objekt treba smjestiti.

Sažetak - jednako u odnosu na hashCode u Javi

Razlika u equals i hashCode u Javi je u tome što se equals koristi za usporedbu dvaju objekata, dok hashCode u hashiranju donosi odluku u koju bi grupu objekt trebao biti kategoriziran.

Preporučeno: