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.
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.
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.
03. attēls: Studentu klase ar vienādām un hashCode
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ē.