Forskjellen Mellom Like Og HashCode I Java

Innholdsfortegnelse:

Forskjellen Mellom Like Og HashCode I Java
Forskjellen Mellom Like Og HashCode I Java

Video: Forskjellen Mellom Like Og HashCode I Java

Video: Forskjellen Mellom Like Og HashCode I Java
Video: Java. Методы equals и hashCode. 2024, November
Anonim

Nøkkelforskjell - er lik vs hashCode i Java

Likestillingene er lik operatøren ==, som skal teste for objektidentitet i stedet for objektlikhet. HashCode er en metode der en klasse implisitt eller eksplisitt bryter ned dataene som er lagret i en forekomst av klassen, til en enkelt hash-verdi, som er et 32-bits signert heltall. Hovedforskjellen mellom lik og hashCode i Java er at likene brukes til å sammenligne to objekter mens hashCode brukes i hashing for å bestemme hvilken gruppe et objekt skal kategoriseres i.

INNHOLD

1. Oversikt og nøkkelforskjell

2. Hva er lik i Java

3. Hva er hashCode i Java

4. Sammenligning side om side - er lik vs hashCode i Java i tabellform

5. Sammendrag

Hva er lik i Java?

Likemetoden brukes til å sammenligne to objekter. Standardmetoden for likhet er definert i objektklassen. Den implementeringen er lik operatøren ==. De to objektreferansene er bare like hvis de peker på det samme objektet. Det er mulig å overstyre likemetoden.

Forskjellen mellom like og hashCode i Java
Forskjellen mellom like og hashCode i Java

Figur 01: Java-program med lik

Uttalelsen System.out.println (s1.equals (s2)) vil gi svaret usant fordi s1 og s2 refererer til to forskjellige objekter. Det lignet påstanden, System.out.println (s1 == s2);

Uttalelsen System.out.println (s1.equals (s3)) vil gi svaret sant fordi s1 og s3 refererer til det samme objektet. Det lignet påstanden, System.out.println (s1 == s3);

Det er ingen lik metode i studentklassen. Derfor kalles likene i Object-klassen. Sann vises bare hvis objektreferansen peker mot det samme objektet.

Forskjellen mellom like og hashCode i Java Figur 02
Forskjellen mellom like og hashCode i Java Figur 02

Figur 02: Java-program med overstyrt er lik

I henhold til programmet ovenfor blir likemetoden overstyrt. Et objekt sendes til metoden, og det blir type kastet til Student. Deretter blir ID-verdiene sjekket. Hvis ID-verdiene er like, vil de returnere til sant. Hvis ikke, vil den returnere falsk. IDene til s1 og s2 er like. Så det vil skrives ut sant. IDene til s1 og s3 er også like, så det blir skrevet ut.

Hva er hashCode i Java?

HashCode brukes i hashing for å bestemme hvilken gruppe et objekt skal kategoriseres i. En gruppe objekter kan dele den samme hashCode. En riktig hashing-funksjon kan jevnt fordele objekter i forskjellige grupper.

En riktig hashCode kan ha egenskaper som følger. Anta at det er to objekter som obj1 og obj2. Hvis obj1.equals (obj2) er sant, er obj1.hashCode () lik obj2.hashCode (). Hvis obj1.equals (obj2) er falsk, er det ikke nødvendig at obj1.hashCode () ikke er lik obj2.hashCode (). De to ulike objektene kan også ha samme hashCode.

Forskjellen mellom like og hashCode i Java Figur 03
Forskjellen mellom like og hashCode i Java Figur 03

Figur 03: Studentklasse med lik og hashCode

Hovedforskjell mellom lik og hashCode i Java
Hovedforskjell mellom lik og hashCode i Java

Figur 04: Hovedprogram

Studentklassen inneholder likhetene og hashCode-metodene. Likemetoden i studentklassen vil motta et objekt. Hvis objektet er null, vil det returnere falskt. Hvis klassene til objektene ikke er de samme, vil de returnere falske. ID-verdiene blir sjekket i begge objektene. Hvis de er like, vil det være sant. Ellers vil det returnere falskt.

I hovedprogrammet opprettes objekter s1 og s2. Når du ringer til s1.equals (s2), vil det være sant fordi likemetoden blir overstyrt og den sjekker id-verdiene til de to objektene. Selv om de refererer til to objekter, er svaret sant fordi id-verdiene til s1 og s2 er de samme. Da s1.equals (s2) er sant, bør hashCode til s1 og s2 være lik. Utskrift av hashCode på s1 og s2 gir samme verdi. HashCode-metoden kan brukes med samlinger som HashMap.

Hva er forskjellen mellom lik og hashCode i Java?

Diff Article Midt før tabell

tilsvarer vs hashCode i Java

equals er en metode i Java som fungerer som operatøren ==, som er å teste for objektidentitet i stedet for objektlikhet. hashCode er en metode der en klasse implisitt eller eksplisitt bryter ned dataene som er lagret i en forekomst av klassen, til en enkelt hash-verdi.
Bruk
Metoden er lik brukes til å sammenligne to objekter. Metoden brukes i hashing for å bestemme hvilken gruppe et objekt skal plasseres i.

Sammendrag - tilsvarer vs hashCode i Java

Forskjellen i like og hashCode i Java er at likene brukes til å sammenligne to objekter mens hashCode brukes i hashing for å bestemme hvilken gruppe et objekt skal kategoriseres i.

Anbefalt: