Forskjellen mellom like og hashCode i Java

Nøkkelforskjell - er lik vs hashCode i Java
 

De like er lik den == operatøren, som skal teste for objektidentitet i stedet for objektets likestilling. The hashCode er en metode hvor en klasse implisitt eller eksplisitt bryter ned dataene lagret i en forekomst av klassen, til en enkelt hashverdi, som er et 32-bits signert heltall. De nøkkelforskjell mellom like og hashCode i Java er det likeverdene brukes til å sammenligne to objekter mens hashCode brukes i hashing for å bestemme hvilken gruppe en gjenstand skal kategoriseres i.

INNHOLD

1. Oversikt og nøkkelforskjell
2. Hva er like i Java
3. Hva er hashCode i Java
4. Side ved side-sammenligning - tilsvarer vs hashCode i Java i tabellform
5. Sammendrag

Hva er like i Java?

Likestillingsmetoden brukes til å sammenligne to objekter. Standard-likemetoden er definert i objektklassen. Den implementeringen ligner == operatøren. De to objektreferanser er bare like hvis de peker mot samme objekt. Det er mulig å overstyre likestillingsmetoden.

Figur 01: Java Program med likeverdige

Uttrykket System.out.println (s1.equals (s2)) vil gi svaret feil fordi s1 og s2 refererer til to forskjellige objekter. Det lignet på setningen System.out.println (s1 == s2);

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

Det er ikke likeverdig metode i Studentklassen. Derfor kalles likene i Objeklassen. True vises bare hvis objektreferansen peker mot det samme objektet.

Figur 02: Java-program med overstyrt tilsvarer

I henhold til det ovennevnte programmet overstyres likestillingsmetoden. En gjenstand sendes til metoden, og den er typen kastet til Student. Deretter kontrolleres id-verdiene. Hvis id-verdiene er liknende, vil den returnere sann. Hvis ikke, vil den returnere falsk. Sidene til s1 og s2 er like. Så, det vil skrive ut sant. Ids av s1 og s3 er også like, så det vil skrive ut sant.

Hva er hashCode i Java?

The hashCode brukes i hash for å bestemme hvilken gruppe en gjenstand skal kategoriseres i. En gruppe objekter kan dele samme hashCode. En riktig hashing-funksjon kan jevnt fordelte objekter i ulike grupper.

En korrekt 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 ulikke objektene kan også ha samme hashCode.

Figur 03: Studentklasse med like og hashCode

Figur 04: Hovedprogram

Studentklassen inneholder like og hashCode metoder. Likestillingsmetoden i Studentklassen vil motta et objekt. Hvis objektet er null, vil det returnere falskt. Hvis klassene av objektene ikke er like, vil det returnere falskt. ID-verdiene er merket i begge objektene. Hvis de er like, vil den komme tilbake sann. Ellers vil det returnere falsk.

I hovedprogrammet blir objekter s1 og s2 opprettet. Når du ringer s1.equals (s2), vil det være sant fordi likestillingsmetoden overskrides, og det kontrollerer id-verdiene for de to objektene. Selv om de refererer til to objekter, er svaret sant fordi id-verdiene til s1 og s2 er de samme. Siden s1.equals (s2) er sant, må hashCode av s1 og s2 være lik. Utskrift av hashCode av s1 og s2 gir samme verdi. The hashCode-metoden kan brukes med samlinger som HashMap.

Hva er forskjellen mellom equals og hashCode i Java?

tilsvarer vs hashCode i Java

like er en metode i Java som fungerer som == operatøren, som skal teste for objektidentitet i stedet for objektliktighet. hashCode er en metode hvor en klasse implisitt eller eksplisitt bryter ned dataene lagret i en forekomst av klassen til en enkelt hashverdi.
 bruk
Metoden er lik for å sammenligne to objekter. Metoden brukes i hashing for å bestemme hvilken gruppe en gjenstand skal plasseres i.

Sammendrag - er lik vs hashCode i Java

Forskjellen i like og hashCode i Java er at likeverdene brukes til å sammenligne to objekter mens hashCode brukes i hashing for å bestemme hvilken gruppe en gjenstand skal kategoriseres i.

Henvisning:

1. "Java HashCode ()." Wikipedia, Wikimedia Foundation, 17. februar 2018. Tilgjengelig her 
2.Harold, Elliotte Rusty. "The Equals () Method." The Equals () Metoden, 2. november 2001. Tilgjengelig her