Verschil Tussen Gelijken En HashCode In Java

Inhoudsopgave:

Verschil Tussen Gelijken En HashCode In Java
Verschil Tussen Gelijken En HashCode In Java

Video: Verschil Tussen Gelijken En HashCode In Java

Video: Verschil Tussen Gelijken En HashCode In Java
Video: Выпуск 22. hashCode() и equals() - самое главное. 2024, November
Anonim

Belangrijkste verschil - is gelijk aan versus hashCode in Java

De equals is vergelijkbaar met de == operator, die bedoeld is om te testen op objectidentiteit in plaats van objectgelijkheid. De hashCode is een methode waarmee een klasse de gegevens die zijn opgeslagen in een instantie van de klasse, impliciet of expliciet opsplitst in een enkele hash-waarde, een 32-bits geheel getal met ondertekening. Het belangrijkste verschil tussen equals en hashCode in Java is dat de equals wordt gebruikt om twee objecten te vergelijken, terwijl de hashCode wordt gebruikt bij hashing om te beslissen in welke groep een object moet worden gecategoriseerd.

INHOUD

1. Overzicht en belangrijkste verschil

2. Wat is gelijk in Java

3. Wat is hashCode in Java

4. Vergelijking zij aan zij - is gelijk aan versus hashCode in Java in tabelvorm

5. Samenvatting

Wat is gelijk in Java?

De equals-methode wordt gebruikt om twee objecten te vergelijken. De standaard is gelijk aan methode is gedefinieerd in de objectklasse. Die implementatie is vergelijkbaar met de == operator. De twee objectreferenties zijn alleen gelijk als ze naar hetzelfde object verwijzen. Het is mogelijk om de methode is gelijk aan te overschrijven.

Verschil tussen gelijken en hashCode in Java
Verschil tussen gelijken en hashCode in Java

Figuur 01: Java-programma met gelijken

De instructie System.out.println (s1.equals (s2)) geeft het antwoord false omdat s1 en s2 naar twee verschillende objecten verwijzen. Het was vergelijkbaar met de instructie System.out.println (s1 == s2);

De instructie System.out.println (s1.equals (s3)) geeft het antwoord true omdat s1 en s3 naar hetzelfde object verwijzen. Het was vergelijkbaar met de instructie System.out.println (s1 == s3);

Er is geen gelijken-methode in de klasse Student. Daarom worden de gelijken in de Object-klasse aangeroepen. Waar wordt alleen weergegeven als de objectverwijzing naar hetzelfde object verwijst.

Verschil tussen gelijken en hashCode in Java Figure 02
Verschil tussen gelijken en hashCode in Java Figure 02

Figuur 02: Java-programma met overschreven is gelijk aan

Volgens het bovenstaande programma wordt de equals-methode overschreven. Een object wordt aan de methode doorgegeven en het wordt naar Student gecast. Vervolgens worden de id-waarden gecontroleerd. Als de id-waarden vergelijkbaar zijn, wordt true geretourneerd. Als dit niet het geval is, wordt false geretourneerd. De ID's van s1 en s2 zijn vergelijkbaar. Het wordt dus waar afgedrukt. De id's van s1 en s3 zijn ook vergelijkbaar, dus het zal waar worden afgedrukt.

Wat is hashCode in Java?

De hashCode wordt gebruikt bij hashing om te beslissen in welke groep een object moet worden gecategoriseerd. Een groep objecten kan dezelfde hashCode delen. Een correcte hashing-functie kan objecten gelijkmatig over verschillende groepen verdelen.

Een correcte hashCode kan de volgende eigenschappen hebben. Stel dat er twee objecten zijn als obj1 en obj2. Als obj1.equals (obj2) waar is, dan is obj1.hashCode () gelijk aan obj2.hashCode (). Als obj1.equals (obj2) false is, is het niet nodig dat obj1.hashCode () niet gelijk is aan obj2.hashCode (). De twee ongelijke objecten kunnen ook dezelfde hashCode hebben.

Verschil tussen gelijken en hashCode in Java Figure 03
Verschil tussen gelijken en hashCode in Java Figure 03

Figuur 03: Leerlingklasse met is gelijk aan en hashCode

Belangrijkste verschil tussen gelijken en hashCode in Java
Belangrijkste verschil tussen gelijken en hashCode in Java

Figuur 04: hoofdprogramma

De klasse Student bevat de methoden is gelijk aan en hashCode. De equals-methode in de klasse Student ontvangt een object. Als het object null is, retourneert het false. Als de klassen van de objecten niet hetzelfde zijn, wordt false geretourneerd. De id-waarden worden in beide objecten gecontroleerd. Als ze vergelijkbaar zijn, wordt true geretourneerd. Anders wordt false geretourneerd.

In het hoofdprogramma worden objecten s1 en s2 gemaakt. Bij het aanroepen van s1.equals (s2) zal true opleveren omdat de equals-methode wordt overschreven en de id-waarden van de twee objecten worden gecontroleerd. Ook al verwijzen ze naar twee objecten, het antwoord is waar omdat de id-waarden van s1 en s2 hetzelfde zijn. Aangezien s1.equals (s2) waar is, moet de hashCode van s1 en s2 gelijk zijn. Het afdrukken van de hashCode van s1 en s2 geeft dezelfde waarde. De hashCode-methode kan worden gebruikt met verzamelingen zoals HashMap.

Wat is het verschil tussen gelijken en hashCode in Java?

Diff Artikel Midden voor Tafel

is gelijk aan vs hashCode in Java

equals is een methode in Java die vergelijkbaar is met de == operator, namelijk het testen op objectidentiteit in plaats van objectgelijkheid. hashCode is een methode waarmee een klasse de gegevens die in een instantie van de klasse zijn opgeslagen, impliciet of expliciet opsplitst in een enkele hash-waarde.
Gebruik
De methode is gelijk aan wordt gebruikt om twee objecten te vergelijken. De methode wordt gebruikt bij hashing om te beslissen in welke groep een object moet worden geplaatst.

Samenvatting - is gelijk aan versus hashCode in Java

Het verschil in equals en hashCode in Java is dat de equals wordt gebruikt om twee objecten te vergelijken, terwijl de hashCode wordt gebruikt bij hashing om te beslissen in welke groep een object moet worden gecategoriseerd.

Aanbevolen: