Starp Java Un HashCode Atšķirība

Satura rādītājs:

Starp Java Un HashCode Atšķirība
Starp Java Un HashCode Atšķirība

Video: Starp Java Un HashCode Atšķirība

Video: Starp Java Un HashCode Atšķirība
Video: HTC Velocity 4G. Скорострел 2024, Maijs
Anonim

Atslēgu starpība - vienāds ar Java hashCode

Vienāds ir līdzīgs operatoram ==, kuram jāpārbauda objekta identitāte, nevis objekta vienlīdzība. HashCode ir metode, ar kuras palīdzību klase netieši vai tieši sadala klases instancē saglabātos datus vienā jaukšanas vērtībā, kas ir 32 bitu parakstīts vesels skaitlis. Galvenā atšķirība starp vienādiem un hashCode Java ir tāda, ka vienādi tiek izmantoti, lai salīdzinātu divus objektus, savukārt hashCode tiek izmantots jaucot, lai izlemtu, kurā grupā objekts jāklasificē.

SATURS

1. Pārskats un Key Atšķirība

2. Kāds ir vienāds ar Java

3. Kas ir Jaucējkods Java

4. blakus salīdzinājums - vienāds vs Jaucējkods Java tabulas veidā

5. Kopsavilkums

Kas Java ir vienāds?

Divu objektu salīdzināšanai tiek izmantota vienāda metode. Noklusējuma vienāda metode ir definēta objektu klasē. Šī ieviešana ir līdzīga operatoram ==. Abas objektu atsauces ir vienādas tikai tad, ja tās norāda uz vienu un to pašu objektu. Ir iespējams ignorēt vienādu metodi.

Starp Java un hashCode atšķirība
Starp Java un hashCode atšķirība

01. attēls: Java programma ar vienādām

Izraksts System.out.println (s1.equals (s2)) sniegs atbildi nepatiesu, jo s1 un s2 attiecas uz diviem dažādiem objektiem. Tas bija līdzīgs paziņojumam System.out.println (s1 == s2);

Izraksts System.out.println (s1.equals (s3)) sniegs atbildi patiesu, jo s1 un s3 attiecas uz vienu un to pašu objektu. Tas bija līdzīgs paziņojumam System.out.println (s1 == s3);

Studentu klasē nav vienādas metodes. Tāpēc tiek izsaukti vienādi klasē Object. Patiesība tiek parādīta tikai tad, ja objekta atsauce norāda uz to pašu objektu.

Atšķirība starp vienādiem un hashCode Java Figure 02
Atšķirība starp vienādiem un hashCode Java Figure 02

02. attēls: Java programma ar vienumu Pārņemts ir vienāda

Saskaņā ar iepriekš minēto programmu vienāda metode tiek ignorēta. Objekts tiek nodots metodei, un tā tips tiek nodots studentam. Pēc tam tiek pārbaudītas ID vērtības. Ja id vērtības ir līdzīgas, tas atgriezīsies patiess. Ja nē, tas atgriezīsies nepatiesi. S1 un s2 ID ir līdzīgi. Tātad, tas izdosies patiess. Arī s1 un s3 ID ir līdzīgi, tāpēc tas tiks drukāts kā patiess.

Kas ir hashCode Java?

HashCode tiek izmantots jaucot, lai izlemtu, kurā grupā objekts jāklasificē. Objektu grupa var koplietot to pašu hashCode. Pareiza jaukšanas funkcija var vienmērīgi sadalīt objektus dažādās grupās.

Pareizam hashCode var būt šādas īpašības. Pieņemsim, ka ir divi objekti kā obj1 un obj2. Ja obj1.equals (obj2) ir taisnība, tad obj1.hashCode () ir vienāds ar obj2.hashCode (). Ja obj1.equals (obj2) ir nepatiesa, nav nepieciešams, lai obj1.hashCode () nebūtu vienāds ar obj2.hashCode (). Abiem nevienlīdzīgajiem objektiem var būt arī viens un tas pats hashCode.

Atšķirība starp vienādiem un hashCode Java Figure 03
Atšķirība starp vienādiem un hashCode Java Figure 03

03. attēls: Studentu klase ar vienādām un hashCode

Galvenā atšķirība starp vienādiem un hashCode Java
Galvenā atšķirība starp vienādiem un hashCode Java

04. Attēls: galvenā programma

Studentu klasē ir vienādas un hashCode metodes. Metode vienāds ar studentu klasi saņems objektu. Ja objekts nav derīgs, tas atgriezīsies nepatiesi. Ja objektu klases nav vienādas, tas atgriezīsies nepatiesi. ID vērtības tiek pārbaudītas abos objektos. Ja tie ir līdzīgi, tas atgriezīsies patiesībā. Citādi tas atgriezīsies nepatiesi.

Galvenajā programmā tiek izveidoti objekti s1 un s2. Zvanot s1.equals (s2), tiks dota taisnība, jo metode vienāda tiek ignorēta un tā pārbauda abu objektu id vērtības. Pat ja tie attiecas uz diviem objektiem, atbilde ir patiesa, jo s1 un s2 id vērtības ir vienādas. Tā kā s1.equals (s2) ir taisnība, s1 un s2 hashCode jābūt vienādam. Izdrukājot s1 un s2 hashCode, tiek piešķirta vienāda vērtība. HashCode metodi var izmantot tādās kolekcijās kā HashMap.

Kāda ir Java atšķirība starp vienādiem un hashCode?

Atšķirīgs raksts vidū pirms tabulas

Java ir vienāds ar hashCode

equals ir Java metode, kas darbojas līdzīgi operatoram ==, kuras mērķis ir pārbaudīt objekta identitāti, nevis objekta vienlīdzību. hashCode ir metode, ar kuras palīdzību klase netieši vai tieši sadala klases instancē saglabātos datus vienā jaukšanas vērtībā.
Lietošana
Metode vienāda tiek izmantota, lai salīdzinātu divus objektus. Metode tiek izmantota jaucot, lai izlemtu, kurā grupā objekts jāievieto.

Kopsavilkums - Java ir vienāds ar hashCode

Java vienādu un hashCode atšķirība ir tā, ka vienādus izmanto divu objektu salīdzināšanai, savukārt hashCode tiek izmantots jaucot, lai izlemtu, kurā grupā objekts jāklasificē.

Ieteicams: