Ero Java-yhtälöiden Ja HashCode-koodien Välillä

Sisällysluettelo:

Ero Java-yhtälöiden Ja HashCode-koodien Välillä
Ero Java-yhtälöiden Ja HashCode-koodien Välillä

Video: Ero Java-yhtälöiden Ja HashCode-koodien Välillä

Video: Ero Java-yhtälöiden Ja HashCode-koodien Välillä
Video: Igor Garcia - Hard Reset LG Optimus 3D 2024, Saattaa
Anonim

Avaimen ero - on yhtä suuri kuin Java: n hashCode

Equals on samanlainen kuin == -operaattori, jonka on testattava kohteen identiteetti eikä objektin tasa-arvo. HashCode on menetelmä, jolla luokka hajottaa implisiittisesti tai nimenomaisesti luokan ilmentymään tallennetut tiedot yhdeksi hash-arvoksi, joka on 32-bittinen allekirjoitettu kokonaisluku. Keskeinen ero Java-yhtälöiden ja hashCode-koodien välillä on se, että yhtäläisiä käytetään kahden objektin vertaamiseen, kun taas hashCode-koodia käytetään hajautuksessa päättämään, mihin ryhmään objekti tulisi luokitella.

SISÄLLYS

1. Yleiskatsaus ja avainero

2. Mikä on sama kuin Java

3. Mikä on hashCode Java-ohjelmassa

4. Vertailu rinnakkain - sama kuin vs. HashCode Java-muodossa taulukkomuodossa

5. Yhteenveto

Mitä on yhtä suuri Java?

Equals-menetelmää käytetään kahden objektin vertaamiseen. Oletusarvoinen menetelmä on määritelty objektiluokassa. Tämä toteutus on samanlainen kuin == -operaattori. Nämä kaksi objektiviittausta ovat samat vain, jos ne osoittavat samaan kohteeseen. Equals-menetelmä on mahdollista ohittaa.

Ero Java-yhtälöiden ja hashCode-koodien välillä
Ero Java-yhtälöiden ja hashCode-koodien välillä

Kuva 01: Java-ohjelma yhtäläisillä

Käsky System.out.println (s1.equals (s2)) antaa vastauksen vääräksi, koska s1 ja s2 viittaavat kahteen eri objektiin. Se oli samanlainen kuin lause System.out.println (s1 == s2);

Käsky System.out.println (s1.equals (s3)) antaa vastauksen totta, koska s1 ja s3 viittaavat samaan objektiin. Se oli samanlainen kuin lause System.out.println (s1 == s3);

Opiskelija-luokassa ei ole yhtäläistä menetelmää. Siksi Object-luokan yhtäläisiä kutsutaan. True näytetään vain, jos objektiviittaus osoittaa samaan objektiin.

Ero tasa-arvon ja hashCode välillä Java Figure 02: ssa
Ero tasa-arvon ja hashCode välillä Java Figure 02: ssa

Kuva 02: Ohitettu Java-ohjelma on yhtä suuri

Yllä olevan ohjelman mukaan equals-menetelmä ohitetaan. Objekti välitetään menetelmälle ja se kirjoitetaan tyypille Student. Sitten id-arvot tarkistetaan. Jos id-arvot ovat samanlaiset, se palauttaa arvon true. Jos ei, se palauttaa epätosi. S1: n ja s2: n id: t ovat samanlaisia. Joten se tulostaa totta. Myös s1: n ja s3: n id: t ovat samanlaisia, joten se tulostaa totta.

Mikä on hashCode Java-ohjelmassa?

HashCodea käytetään hajautuksessa päättämään, mihin ryhmään objekti tulisi luokitella. Ryhmä objekteja voi jakaa saman hashCode-koodin. Oikea hajautusfunktio voi jakaa objektit tasaisesti eri ryhmiin.

Oikealla hashCodella voi olla seuraavat ominaisuudet. Oletetaan, että objekteja obj1 ja obj2 on kaksi. Jos obj1.equals (obj2) on tosi, niin obj1.hashCode () on yhtä suuri kuin obj2.hashCode (). Jos obj1.equals (obj2) on väärä, ei ole välttämätöntä, että obj1.hashCode () ei ole sama kuin obj2.hashCode (). Kummallakin eriarvoisella objektilla voi myös olla sama hashCode.

Ero tasa-arvon ja hashCode välillä Java Kuvassa 03
Ero tasa-arvon ja hashCode välillä Java Kuvassa 03

Kuva 03: Opiskelijaluokka, jossa on yhtäsuuri ja hashCode

Tärkein ero yhtäläisten ja hashCode-koodien välillä Javassa
Tärkein ero yhtäläisten ja hashCode-koodien välillä Javassa

Kuva 04: Pääohjelma

Opiskelijaluokka sisältää equals- ja hashCode-menetelmät. Opiskelija-luokan Equals-menetelmä saa objektin. Jos objekti on tyhjä, se palauttaa arvon false. Jos objektien luokat eivät ole samat, se palauttaa arvon false. Id-arvot tarkistetaan molemmissa kohteissa. Jos ne ovat samanlaisia, se palaa totta. Muuten se palauttaa väärän.

Pääohjelmassa luodaan objektit s1 ja s2. Kun soitat s1.equals (s2) antaa totta, koska equals-menetelmä ohitetaan ja se tarkistaa kahden objektin id-arvot. Vaikka ne viittaavat kahteen objektiin, vastaus on totta, koska s1: n ja s2: n id-arvot ovat samat. Koska s1.equals (s2) on totta, s1: n ja s2: n hashCode-arvon on oltava sama. S1: n ja s2: n hashCode-tulostus antaa saman arvon. HashCode-menetelmää voidaan käyttää kokoelmissa, kuten HashMap.

Mikä on ero yhtäläisten ja hashCode-koodien välillä Java-ohjelmassa?

Erilainen artikkeli keskellä taulukkoa

equals vs hashCode Java-sovelluksessa

equals on Java-menetelmä, joka toimii samankaltaisesti kuin == -operaattori, jonka tarkoituksena on testata kohteen identiteetti objektin tasa-arvon sijasta. hashCode on menetelmä, jolla luokka jakaa implisiittisesti tai nimenomaisesti luokan esiintymään tallennetut tiedot yhdeksi hash-arvoksi.
Käyttö
Menetelmää yhtä käytetään kahden objektin vertaamiseen. Menetelmää käytetään hajautuksessa päättämään, mihin ryhmään objekti tulisi sijoittaa.

Yhteenveto - sama kuin hashCode Java-sovelluksessa

Java-yhtälöiden ja hashCode-erojen ero on se, että yhtäläisiä käytetään kahden objektin vertaamiseen, kun taas hashCode-koodia käytetään hajautuksessa päättämään, mihin ryhmään objekti tulisi luokitella.

Suositeltava: