Skillnad mellan lika och hashCode i Java

Huvudskillnad - lika med vs hashCode in java
 

Likorna liknar = = operatören, som är att testa för objektidentitet snarare än objektlikhet. HashCode är en metod genom vilken en klass implicit eller explicit bryter ned data lagrad i en instans av klassen i ett enda hash-värde, vilket är ett 32-bitars signerat heltal. De nyckelskillnad mellan lika och hashCode i java är det jämnarna används för att jämföra två objekt medan hashCode används i hash för att bestämma vilken grupp ett objekt ska kategoriseras i.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är lika i Java
3. Vad är hashCode i Java
4. Jämförelse vid sida vid sida - motsvarar vs hashCode i Java i tabellform
5. Sammanfattning

Vad är lika i Java?

Liknande metod används för att jämföra två objekt. Standardjämnalsmetoden definieras i objektklassen. Den implementeringen liknar == operatören. De två objektreferenser är lika med endast om de pekar mot samma objekt. Det är möjligt att åsidosätta jämställdhetsmetoden.

Figur 01: Java Program med lika

Uttrycket System.out.println (s1.equals (s2)) ger svaret fel eftersom s1 och s2 avser två olika objekt. Det liknade uttalandet, System.out.println (s1 == s2);

Uttrycket System.out.println (s1.equals (s3)) ger svaret sant eftersom s1 och s3 hänvisar till samma objekt. Det liknade uttalandet, System.out.println (s1 == s3);

Det finns ingen lika metod i studentklassen. Därför heter jämställdare i Objeklassen. True visas bara om objektreferensen pekar på samma objekt.

Figur 02: Java-programmet med överstyrt är lika

Enligt ovanstående program är likvärdiga metoden överskridna. Ett objekt skickas till metoden, och det är typ gjutet till Student. Därefter kontrolleras id-värdena. Om ID-värdena är likartade kommer det att returneras sant. Om inte, kommer det att returnera falskt. Idsna för s1 och s2 är likartade. Så kommer det skriva ut sant. Idsna av s1 och s3 är också lika, så det kommer att skriva sant.

Vad är hashCode i Java?

HashCode används i hash för att bestämma vilken grupp ett objekt ska kategoriseras i. En grupp av objekt kan dela samma hashCode. En korrekt hashing-funktion kan jämnt fördela objekt i olika grupper.

En korrekt hashCode kan ha egenskaper enligt följande. Antag att det finns två objekt som obj1 och obj2. Om obj1.equals (obj2) är sant, är obj1.hashCode () lika med obj2.hashCode (). Om obj1.equals (obj2) är falskt är det inte nödvändigt att obj1.hashCode () inte är lika med obj2.hashCode (). De två ojämna objekten kan också ha samma hashCode.

Figur 03: Studentklass med lika och hashCode

Figur 04: Huvudprogram

Studentklassen innehåller jämställdhets- och hashCode-metoderna. Liknande metod i Studentklassen kommer att få ett objekt. Om objektet är null, kommer det att returnera falskt. Om klasserna av objekten inte är samma, kommer det att returnera falskt. ID-värdena kontrolleras i båda objekten. Om de liknar det kommer det att återvända sant. Annars kommer det att returnera falskt.

I huvudprogrammet skapas objekt s1 och s2. När man ringer s1.equals (s2) kommer det att vara sant eftersom likvärdighetsmetoden överskrids och det kontrollerar ID-värdena för de två objekten. Även om de hänvisar till två objekt är svaret sant eftersom id-värdena för s1 och s2 är desamma. Eftersom s1.equals (s2) är sant, måste hashCode av s1 och s2 vara lika. Att skriva ut hashCode av s1 och s2 ger samma värde. HashCode-metoden kan användas med samlingar som HashMap.

Vad är skillnaden mellan lika och hashCode i Java?

motsvarar vs hashCode i Java

lika är en metod i Java som fungerar som == operatören, som är att testa för objektidentitet snarare än objektlikhet. hashCode är en metod genom vilken en klass implicit eller explicit bryter ned data lagrad i en förekomst av klassen till ett enda hashvärde.
 Användande
Metoden är lika med att jämföra två objekt. Metoden används i hackning för att bestämma vilken grupp ett objekt ska placeras i.

Sammanfattning - lika med vs hashCode in java

Skillnaden i jämvikt och hashCode i Java är att jämnarna används för att jämföra två objekt medan hashCode används i hash för att bestämma vilken grupp ett objekt ska kategoriseras i.

Referens:

1. "Java HashCode ()." Wikipedia, Wikimedia Foundation, 17 februari 2018. Tillgänglig här 
2.Harold, Elliotte Rusty. "Equals () Method." Equals () Metoden, 2 nov 2001. Tillgänglig här