logo

Razlika med primerjavo niza z uporabo metode == in .equals() v Javi

Oba metoda equals(). in == operater se uporabljajo za primerjavo dveh objektov v Javi.

The Metoda Java string equals(). , primerja dva niza in vrne true, če se vsi znaki ujemajo v obeh nizih, sicer vrne false.



The == operater primerja referenčno ali pomnilniško lokacijo objektov v kupu, ne glede na to, ali kažejo na isto lokacijo ali ne.
Kadarkoli ustvarimo objekt z uporabo operatorja novo , bo ustvaril a novo pomnilniško mesto za ta predmet. Zato uporabimo operator ==, da preverimo, ali sta pomnilniška lokacija ali naslov dveh objektov enaka ali ne.

Na splošno sta oba operatorja equals() in == v Java se uporabljajo za primerjavo predmetov za preverjanje enakosti, vendar je tukaj nekaj razlik med obema:

  1. Glavna razlika med metoda .equals(). in == operater je, da je eno metoda, drugo pa operator.
  2. Za referenčno primerjavo lahko uporabimo operatorje == ( primerjava naslovov ) in metoda .equals() za vsebinska primerjava . Preprosto povedano, == preveri, ali oba objekta kažeta na isto pomnilniško lokacijo, medtem ko .equals() oceni primerjavo vrednosti v objektih.
  3. Če razred ne preglasi metodo equals , potem privzeto uporabi metodo equals(Object o) najbližjega nadrejenega razreda, ki je preglasil to metodo. **Glej Zakaj preglasiti metodo equals(Object) in hashCode()? Podrobno.

primer:

Metoda String equals() in operator == v Javi.



Java






// Java program to understand> // the concept of == operator> public> class> Test {> >public> static> void> main(String[] args)> >{> >String s1 =>'HELLO'>;> >String s2 =>'HELLO'>;> >String s3 =>new> String(>'HELLO'>);> >System.out.println(s1 == s2);>// true> >System.out.println(s1 == s3);>// false> >System.out.println(s1.equals(s2));>// true> >System.out.println(s1.equals(s3));>// true> >}> }>

>

>

Izhod

true false true true>

Pojasnilo: Tukaj ustvarimo dva objekta, in sicer s1 in s2.

  • Tako s1 kot s2 se nanašata na iste objekte.
  • Ko uporabimo operator == za primerjavo s1 in s2, je rezultat resničen, saj imata oba enaka naslova v vrvica stalni bazen.
  • Če uporabimo enako, je rezultat resničen, ker primerja le vrednosti, podane v s1 in s2.

Bazen nizov Java

s1 = POZDRAVLJENI

s2 = POZDRAVLJENI

Java Heap

s3 = POZDRAVLJENI

Naj podrobneje razumemo oba operaterja:

mylivecricket.in

Operator enakosti (==)

Operatorje enakosti lahko uporabimo za vsak primitivni tip, vključno z logičnim tipom. Za tipe objektov lahko uporabimo tudi operatorje enakosti.

primer:

== operater v Javi.

Java




// Java program to illustrate> // == operator for compatible data> // types> class> Test {> >public> static> void> main(String[] args)> >{> >// integer-type> >System.out.println(>10> ==>20>);> >// char-type> >System.out.println(>'a'> ==>'b'>);> >// char and double type> >System.out.println(>'a'> ==>97.0>);> >// boolean type> >System.out.println(>true> ==>true>);> >}> }>

>

>

Izhod

false false true true>

Če uporabimo == za tipe objektov, potem mora biti združljivost med vrstami argumentov (bodisi otrok staršu ali starš otroku ali isti tip). V nasprotnem primeru bomo prejeli napako med prevajanjem.

primer:

Java




// Java program to illustrate> // == operator for incompatible data types> class> Test {> >public> static> void> main(String[] args)> >{> >Thread t =>new> Thread();> >Object o =>new> Object();> >String s =>new> String(>'GEEKS'>);> >System.out.println(t == o);> >System.out.println(o == s);> >// Uncomment to see error> >System.out.println(t==s);> >}> }>

>

>

Izhod:

false false // error: incomparable types: Thread and String>

Metoda Java String equals().

V Javi je Metoda String equals(). primerja dva podana niza na podlagi podatkov/vsebine niza. Če je vsa vsebina obeh nizov enaka, je vrne true . Če se vsi znaki ne ujemajo, potem je vrne false .

Sintaksa:

Sintaksa : javno logično je enako (Object anotherObject)

Parameter :

  • drug predmet- Niz za primerjavo

Vrne:

  • Logična vrednost :
    • prav- Če so nizi enaki
    • false- če nizi niso enaki

primer:

Metoda String equals() v Javi

Java




public> class> Test {> >public> static> void> main(String[] args)> >{> >Thread t1 =>new> Thread();> >Thread t2 =>new> Thread();> >Thread t3 = t1;> >String s1 =>new> String(>'GEEKS'>);> >String s2 =>new> String(>'GEEKS'>);> >System.out.println(t1 == t3);> >System.out.println(t1 == t2);> >System.out.println(s1 == s2);> >System.out.println(t1.equals(t2));> >System.out.println(s1.equals(s2));> >}> }>

>

>

livecricket.is

Izhod:

true false false false true>

Pojasnilo: Tukaj uporabljamo metodo .equals za preverjanje, ali dva objekta vsebujeta iste podatke ali ne.

  • V zgornjem primeru ustvarimo 3 objekte Thread in 2 predmeta String.
  • Pri prvi primerjavi preverimo, ali je t1 == t3 ali ne. Kot vemo oba t1 in t3 kažeta na isti predmet . Zato se vrne true.
  • Pri drugi primerjavi uporabljamo operator == za primerjavo objektov String in ne vsebine objektov. Tukaj sta oba predmeta različna, zato je rezultat te primerjave False.
  • Ko primerjamo 2 objekta String z operatorjem equals(), potem preverjamo, ali oba objekta vsebujeta iste podatke ali ne.
  • Oba objekta vsebujeta isti niz, tj. GEEKS. Zato se vrne true.

Preberite tudi:

  • Metoda Character.equals() v Javi s primeri
  • ==, equals(), compareTo(), equalsIgnoreCase() in compare()

Zaključek

Metoda Java string equals() in operator == se uporabljata za primerjavo nizov v Javi. V tej vadnici smo s primeri obravnavali ==operator in metodo String equals() v Javi.

  Read More     String Methods in Java>

Razlika med metodo == in .equals() - Pogosta vprašanja

1. Kakšna je razlika med str1 == str2 in str1 je enako str2?

V Javi str1==str2 vrne true, če sta str1 in str2 niza z enako vsebino. To je zato, ker so nizi z isto vsebino shranjeni na isti lokaciji.

str1.equals(str2) bo vrnil true, če sta str1 in str 2 različna objekta niza, vendar imata enako vsebino.

2. Kakšna je razlika med == in equals pri primerjavi nizov?

The metoda string equals(). primerja dva niza in vrne true, če se vsi znaki ujemajo v obeh nizih, sicer vrne false.

Operator == primerja referenčno ali pomnilniško lokacijo objektov v kopici, ne glede na to, ali kažejo na isto lokacijo ali ne.

3. Kakšna so pravila metode equals()?

  1. Refleksivnost: Za vsak predmet x mora x.equals(x) vedno vrniti true.
  2. Simetrija : Če x.equals(y) vrne true, potem mora y.equals(x) prav tako vrniti true.
  3. Prehodnost : Če sta x.equals(y) in y.equals(z) oba resnična, mora biti tudi x.equals(z) resničen.
  4. Doslednost : Večkratni klici x.equals(y) bi morali vrniti enak rezultat.
  5. Neničnost: Metoda equals() nikoli ne sme vrniti true v primerjavi z null.