Razlika Med Enakimi In HashCode V Javi

Kazalo:

Razlika Med Enakimi In HashCode V Javi
Razlika Med Enakimi In HashCode V Javi

Video: Razlika Med Enakimi In HashCode V Javi

Video: Razlika Med Enakimi In HashCode V Javi
Video: Выпуск 22. hashCode() и equals() - самое главное. 2024, Maj
Anonim

Ključna razlika - enako kot hashCode v Javi

Enako je podobno operaterju ==, ki naj bi preizkusil identiteto predmeta in ne enakost objektov. HashCode je metoda, s katero razred implicitno ali eksplicitno razdeli podatke, shranjene v primerku razreda, v eno zgoščeno vrednost, ki je 32-bitno podpisano celo število. Ključna razlika med enaki in hashCode v Javi je ta, da se equals uporablja za primerjavo dveh predmetov, hashCode pa se uporablja za razprševanje, da se odloči, v katero skupino naj bo objekt kategoriziran.

VSEBINA

1. Pregled in ključna razlika

2. Kaj je enako v Javi

3. Kaj je hashCode v Javi

4. Vzporedna primerjava - enako kot hashCode v Javi v tabelarni obliki

5. Povzetek

Kaj je enako v Javi?

Za primerjavo dveh predmetov se uporablja metoda enak. Privzeta enaka metoda je definirana v razredu predmeta. Ta izvedba je podobna operaterju ==. Dva sklica na objekt sta enaka le, če usmerjata na isti objekt. Možno je preglasiti metodo enakosti.

Razlika med enakimi in hashCode v Javi
Razlika med enakimi in hashCode v Javi

Slika 01: Java program z enakimi

Stavek System.out.println (s1.equals (s2)) bo dal odgovor napačen, ker se s1 in s2 nanašata na dva različna predmeta. Bilo je podobno izjavi System.out.println (s1 == s2);

Stavek System.out.println (s1.equals (s3)) bo dal odgovor res, ker se s1 in s3 nanašata na isti objekt. Bilo je podobno izjavi System.out.println (s1 == s3);

V razredu študentov ni enake metode. Zato se pokličejo enaki v razredu Object. True se prikaže le, če referenca predmeta kaže na isti predmet.

Razlika med enakimi in hashCode v Java Slika 02
Razlika med enakimi in hashCode v Java Slika 02

Slika 02: Program Java z razveljavljenimi enakimi

V skladu z zgornjim programom je metoda enakov razveljavljena. Predmet se posreduje metodi in se vnese v ukaz Študent. Nato se preverijo vrednosti id. Če so vrednosti id podobne, bo vrnil true. V nasprotnem primeru se vrne false. ID-ja s1 in s2 sta podobna. Torej bo natisnjeno res. ID-ji s1 in s3 sta si prav tako podobni, zato bo natisnjeno res.

Kaj je hashCode v Javi?

HashCode se uporablja pri zgoščevanju, da se odloči, v katero skupino naj bo objekt kategoriziran. Skupina predmetov lahko deli isto hashCode. Pravilna funkcija zgoščevanja lahko enakomerno porazdeli predmete v različne skupine.

Pravilna hashCode ima lahko naslednje lastnosti. Predpostavimo, da obstajata dva predmeta kot obj1 in obj2. Če obj1.equals (obj2) drži, je obj1.hashCode () enako obj2.hashCode (). Če je obj1.equals (obj2) false, ni nujno, da obj1.hashCode () ni enak obj2.hashCode (). Dva neenaka predmeta imata lahko tudi isto hashCode.

Razlika med enakimi in hashCode v Java Slika 03
Razlika med enakimi in hashCode v Java Slika 03

Slika 03: Študentski razred z enakimi in hashCode

Ključna razlika med enakimi in hashCode v Javi
Ključna razlika med enakimi in hashCode v Javi

Slika 04: Glavni program

Študentski razred vsebuje metode equals in hashCode. Metoda enako v razredu Študent bo prejela predmet. Če je objekt ničen, bo vrnil false. Če razredi predmetov niso enaki, bo vrnil false. Vrednosti id se preverjajo v obeh objektih. Če so si podobni, se bo to resnično uresničilo. V nasprotnem primeru se bo vrnilo false.

V glavnem programu se ustvarijo predmeti s1 in s2. Ko kličete s1.equals (s2), bo res, ker je metoda equals razveljavljena in preverja vrednosti id dveh predmetov. Čeprav se nanašata na dva predmeta, je odgovor resničen, ker sta vrednosti id s1 in s2 enaki. Ker s1.equals (s2) drži, mora biti hashCode s1 in s2 enak. Tiskanje hashCode s1 in s2 daje enako vrednost. Metodo hashCode je mogoče uporabiti z zbirkami, kot je HashMap.

Kakšna je razlika med enakimi in hashCode v Javi?

Diff Article Sredina pred mizo

je enako v primerjavi z hashCode v Javi

equals je metoda v Javi, ki deluje podobno kot operator ==, ki je preizkus identitete predmeta in ne enakosti objekta. hashCode je metoda, s katero razred implicitno ali eksplicitno razbije podatke, shranjene v primerku razreda, v eno zgoščeno vrednost.
Uporaba
Metoda enaka se uporablja za primerjavo dveh predmetov. Metoda se uporablja pri zgoščevanju, da se odloči, v katero skupino naj se objekt uvrsti.

Povzetek - enako kot hashCode v Javi

Razlika v enakih in hashCode v Javi je v tem, da se enako uporablja za primerjavo dveh predmetov, medtem ko hashCode pri zgoščevanju določa, v katero skupino naj bo objekt kategoriziran.

Priporočena: