Diferența dintre egal și hashCode în Java

Diferența cheie - egală vs hashCode în Java
 

Egal este similar cu operator ==, care este de a testa identitatea obiectului, mai degrabă decât egalitatea de obiect. Codul hashCode este o metodă prin care o clasă defalc în mod implicit sau explicit datele stocate într-o instanță a clasei într-o singură valoare hash, care este un număr întreg cu 32 de biți semnate. diferența cheie între egal și hashCode în Java este asta egalul este folosit pentru a compara două obiecte în timp ce hashCode este folosit în hashing pentru a decide care grup ar trebui clasificat un obiect în.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este egal în Java
3. Ce este hashCode în Java
4. Comparație de la o parte la alta - este egală cu hashCode în Java în formă tabulară
5. rezumat

Ce este egal în Java?

Metoda Equals este utilizată pentru a compara două obiecte. Metoda prestabilită este definită în clasa de obiecte. Această implementare este similară cu operatorul ==. Cele două referințe de obiect sunt egale numai dacă se îndreaptă spre același obiect. Este posibilă suprascrierea metodei equals.

Figura 01: Programul Java cu egal

Instrucțiunea System.out.println (s1.equals (s2)) va da răspunsul fals deoarece s1 și s2 se referă la două obiecte diferite. A fost similar cu instrucțiunea, System.out.println (s1 == s2);

Instrucțiunea System.out.println (s1.equals (s3)) va da răspunsul adevărat deoarece s1 și s3 se referă la același obiect. A fost similară cu declarația, System.out.println (s1 == s3);

Nu există o metodă egală în clasa Student. Prin urmare, se numește egal în clasa Obiect. True se afișează numai dacă referința obiectului indică același obiect.

Figura 02: Programul Java cu valoare egală

În conformitate cu programul de mai sus, metoda equals este suprascrisă. Un obiect este transmis metodei și este tipizat în Student. Apoi, valorile id sunt verificate. Dacă valorile id sunt similare, aceasta va reveni la adevărat. Dacă nu, va reveni fals. ID-urile s1 și s2 sunt similare. Deci, va imprima adevărat. ID-urile s1 și s3 sunt, de asemenea, similare, așa că va imprima adevărat.

Ce este hashCode în Java?

Codul hashCode este folosit în hashing pentru a decide la care grup trebuie clasificat un obiect. Un grup de obiecte pot partaja același cod hash. O funcție corectă de ștergere poate distribui în mod egal obiecte în diferite grupuri.

Un hashCode corect poate avea proprietăți după cum urmează. Să presupunem că există două obiecte ca obj1 și obj2. Dacă obj1.equals (obj2) este adevărat, atunci obj1.hashCode () este egal cu obj2.hashCode (). Dacă obj1.equals (obj2) este falsă, nu este necesar ca obj1.hashCode () să nu fie egal cu obj2.hashCode (). Cele două obiecte inegale ar putea avea, de asemenea, același hashCode.

Figura 03: Clasa de studenți cu egal și hashCode

Figura 04: Programul principal

Clasa Student conține metodele equals și hashCode. Metoda Equals din clasa Student va primi un obiect. Dacă obiectul este nul, acesta va reveni fals. Dacă clasele obiectelor nu sunt aceleași, aceasta va reveni false. Valorile id sunt verificate în ambele obiecte. Dacă ele sunt similare, aceasta va reveni la adevărat. Altfel va reveni fals.

În programul principal, obiectele s1 și s2 sunt create. Atunci când apelați s1.equals (s2) va da adevărat, deoarece metoda equals este suprascrisă și verifică valorile id ale celor două obiecte. Chiar dacă se referă la două obiecte, răspunsul este adevărat deoarece valorile id ale s1 și s2 sunt aceleași. Deoarece s1.equals (s2) este adevărat, hashCode-ul s1 și s2 ar trebui să fie egali. Imprimarea codului hash de s1 și s2 dă aceeași valoare. Metoda hashCode poate fi utilizată cu colecții cum ar fi HashMap.

Care este diferența dintre egal și hashCode în Java?

este egal cu hashCode în Java

equals este o metodă în Java care acționează similar cu operatorul ==, care este de a testa identitatea obiectului, mai degrabă decât egalitatea de obiect. hashCode este o metodă prin care o clasă defalc în mod implicit sau explicit datele stocate într-o instanță a clasei într-o singură valoare hash.
 folosire
Metoda egal este folosit pentru a compara două obiecte. Metoda este utilizată în hash pentru a decide în ce grup să fie plasat un obiect.

Rezumat - egal vs hashCode în Java

Diferența în egal și hashCode în Java este că egalul este folosit pentru a compara două obiecte în timp ce hashCode este folosit în hashing pentru a decide care grup ar trebui să fie clasificat un obiect.

Referinţă:

1. "Java HashCode ()". Wikipedia, Fundația Wikimedia, 17 februarie 2018. Disponibil aici 
2.Harold, Elliotte Rusty. "Metoda Equals ()". Metoda Equals (), 2 noiembrie 2001. Disponibil aici