Forskel mellem lig og hashCode i Java

Nøgleforskel - er lig med vs hashKode i Java
 

Det er lig med operatoren ==, som er at teste for objektidentitet snarere end objektilighed. HashCode er en metode, ved hvilken en klasse implicit eller eksplicit nedbryder de data, der er gemt i et tilfælde af klassen, til en enkelt hashværdi, som er et 32 ​​bit signeret heltal. Det vigtigste forskel mellem lig og hashkode i Java er det det lige bruges til at sammenligne to objekter, mens hashCode bruges i hashing til at bestemme, hvilken gruppe et objekt skal kategoriseres i.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er lig med Java
3. Hvad er hashCode i Java
4. Sammenligning side ved side - er lig med hashCode i Java i tabelform
5. Resume

Hvad der er lig med Java?

Metoden lig er brugt til at sammenligne to objekter. Standard lig metoden er defineret i objektklassen. Denne implementering ligner operatøren ==. De to objektreferencer er kun ens, hvis de peger på det samme objekt. Det er muligt at tilsidesætte metoden lig.

Figur 01: Java-program med ens

Udsagnet System.out.println (s1.equals (s2)) giver svaret falsk, fordi s1 og s2 henviser til to forskellige objekter. Det svarede til udsagnet, System.out.println (s1 == s2);

Udsagnet System.out.println (s1.equals (s3)) giver svaret sandt, fordi s1 og s3 henviser til det samme objekt. Det svarede til udsagnet, System.out.println (s1 == s3);

Der er ingen ens metode i Student-klassen. Derfor kaldes ligestillingerne i objektklassen. Sand vises kun, hvis objektreferencen peger på det samme objekt.

Figur 02: Java-program med overstyrede lig

I henhold til ovenstående program tilsidesættes den ækvivalente metode. Et objekt overføres til metoden, og det kastes til Student. Derefter kontrolleres id-værdierne. Hvis id-værdierne er ens, vender de tilbage. Hvis ikke, vil det vende tilbage falsk. Id'erne for s1 og s2 er ens. Så det vil trykke sandt. Id'erne til s1 og s3 er også ens, så det udskrives sandt.

Hvad er hashCode i Java?

HashCode bruges i hashing til at beslutte, til hvilken gruppe et objekt skal kategoriseres. En gruppe objekter kan dele den samme hashCode. En korrekt hashingfunktion kan jævnt fordele objekter i forskellige grupper.

En korrekt hashCode kan have egenskaber som følger. Antag, at der er to objekter som obj1 og obj2. Hvis obj1.equals (obj2) er sandt, er obj1.hashCode () lig med obj2.hashCode (). Hvis obj1.equals (obj2) er falsk, er det ikke nødvendigt, at obj1.hashCode () ikke er lig med obj2.hashCode (). De to ulige objekter kan måske også have den samme hash-kode.

Figur 03: Studentklasse med lig og hash-kode

Figur 04: Hovedprogram

Studerende-klassen indeholder metoder til lig og hash-kode. Den lige metode i Student-klassen vil modtage et objekt. Hvis objektet er null, vil det vende tilbage falsk. Hvis objekternes klasser ikke er ens, vil de vende tilbage falsk. Id-værdierne kontrolleres i begge objekter. Hvis de er ens, vil det vende tilbage. Ellers vil det vende tilbage falsk.

I hovedprogrammet oprettes objekter s1 og s2. Når der kaldes s1.equals (s2), vil det være sandt, fordi den ækvivalente metode er tilsidesat, og den kontrollerer id-værdierne for de to objekter. Selvom de henviser til to objekter, er svaret sandt, fordi id-værdierne for s1 og s2 er de samme. Da s1.equals (s2) er sandt, skal hash-koden for s1 og s2 være ens. Udskrivning af hashCode for s1 og s2 giver den samme værdi. HashCode-metoden kan bruges med samlinger som HashMap.

Hvad er forskellen mellem lig og hashCode i Java?

er lig med hashCode i Java

lig er en metode i Java, der fungerer som operatøren ==, som er at teste for objektidentitet snarere end objektilighed. hashCode er en metode, ved hvilken en klasse implicit eller eksplicit nedbryder dataene, der er gemt i et tilfælde af klassen, til en enkelt hashværdi.
 Anvendelse
Metoden ens er brugt til at sammenligne to objekter. Metoden bruges i hashing til at bestemme, hvilken gruppe et objekt skal placeres i.

Resume - er lig med vs hashKode i Java

Forskellen i lig og hashCode i Java er, at de lige bruges til at sammenligne to objekter, mens hashCode bruges i hashing til at bestemme, hvilken gruppe et objekt skal kategoriseres i.

Reference:

1. "Java HashCode ()." Wikipedia, Wikimedia Foundation, 17. februar 2018. Tilgængelig her 
2.Harold, Elliotte Rusty. “Metoden Lige ().” Metoden Equals () 2. nov. 2001. Tilgængelig her