Razlika med primerljivim in primerjalnikom v Javi

Kazalo:

Anonim

Kaj je primerljivo v Javi?

Primerljiv v Javi je objekt, ki se primerja z drugim predmetom. Pomaga razvrstiti seznam predmetov po meri. Primerljiv vmesnik java.lang.Comparable mora izvajati razred, da primerja njegove primerke. Niz objektov, ki izvajajo primerljiv vmesnik, se samodejno razvrsti po metodah Arrays.sort in Collections.sort.

V tej vadnici Comparator vs Comparable v Javi boste izvedeli:

  • Kaj je primerljivo v Javi?
  • Kaj je primerjalnik v Javi?
  • Metoda, uporabljena v Primerljiv:
  • Metoda, uporabljena v primerjalniku:
  • Razlika med primerljivim in primerjalnim programom v Javi
  • Najboljše prakse med uporabo primerjalnika in primerljivega v Javi

Kaj je primerjalnik v Javi?

Primerjalnik v Javi je objekt za primerjavo različnih predmetov različnih razredov. Primerjalni vmesnik v Javi se uporablja tudi za urejanje predmetov uporabniško določenih razredov. Vključuje dve pomembni metodi primerjalnega vmesnika, znani kot primerjava (Object obj1, Object obj2) in enaki (Object element).

KLJUČNE RAZLIKE:

  • Primerljivo zagotavlja metodo compareTo () za razvrščanje elementov v Javi, medtem ko Comparator ponuja metodo compare () za razvrščanje elementov v Javi.
  • Primerljiv vmesnik je prisoten v paketu java.lang, medtem ko je primerjalni vmesnik prisoten v paketu java.util.
  • Primerljivo zagotavlja enojno zaporedje razvrščanja, medtem ko primerjalnik ponuja več zaporedij razvrščanja.
  • Primerljivo vpliva na prvotni razred, primerjalnik pa ne na prvotni razred.

Metoda, uporabljena v Primerljiv:

Sledi pomembna metoda, uporabljena v primerljivem vmesniku:

Primerjaj z ():

Metoda CompareTo () se uporablja za naravno razvrščanje nizov. Pomen naravnega razvrščanja je vrstni red razvrščanja, ki velja za predmet, npr. Številski vrstni red za razvrščanje celih števil, abecedni vrstni red za niz itd.

Sintaksa metode CompareTo () je naslednja:

int compareTo(T obj)

V zgornji sintaksi T pomeni vrsto predmetov, ki jih boste primerjali.

Metoda CompareTo () primerja objekt s T obj.

Izhod:

  • Vrne 0, če so vrednosti enake.
  • Če ima objekt manjšo vrednost, ta metoda vrne negativno vrednost.
  • Če ima objekt višjo vrednost, vrne pozitivno vrednost.

Primer metode CompareTo ():

Naslednji primer primerljivega programa Java prikazuje primerjavo dveh znakov, "a" in "b". Znak "a" je pred "b" po abecedi.

Izhod je torej -1. Znak "b" je po a abecedi. Izhod je torej 1. Znaka "a" in "b" sta enakovredna. Izhod je torej 0.

public class Sample_String {public static void main(String[] args) {String str_Sample = "a";System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));str_Sample = "b";System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));str_Sample = "b";System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));}}

Izhod

Compare To 'a' b is : -1Compare To 'b' a is : 1Compare To 'b' b is : 0

Metoda, uporabljena v primerjalniku:

Sledijo pomembne metode, ki se uporabljajo v vmesniku primerjalnika:

Primerjaj ():

Primerjaj () omogoča naročanje predmetov. Če želite to narediti, morate ustvariti razred, ki izvaja primerjalni vmesnik. Po tem morate preglasiti metodo primerjave.

Sintaksa metode compare () je naslednja:

compare(Object obj1, Object obj2)

V zgornji sintaksi sta obj1 in obj2 dva predmeta, ki ju morate primerjati z uporabo metode compare ().

Izhod:

  • Vrne negativno celo število, če je prvi argument manjši od drugega.
  • Vrne nič, če sta prvi in ​​drugi argument enaka.
  • Ta metoda lahko vrne pozitivno celo število, če je prvi argument večji od drugega.

Zagotoviti morate, da je razmerje prehodno. Na primer ((primerjaj (a, b)> 0) && (primerjaj (b, c)> 0)), kar pomeni primerjaj (a, c)> 0.

Primer metode primerjave:

V spodnjem primeru primerjalnega programa Java je 6 spremenljivk. "x", "y", "p", "q", "r" in "s". Izhod je -1 kot vrednost "x", 20 je manj kot vrednost "y", 30. Izhod je 0, ker je vrednost "p", 40 enaka vrednosti "q", 40 .

import java.lang.Integer;public class example {public static void main(String args[]){int x = 20;int y = 30;// as 10 less than 20,// Output will be a value less than zeroSystem.out.println(Integer.compare(x, y));int p = 40;int q = 40;// as 30 equals 30,// Output will be zeroSystem.out.println(Integer.compare(p, q));int r = 20;int s = 7;// as 15 is greater than 8,// Output will be a value greater than zeroSystem.out.println(Integer.compare(r, s));}}

Izhod:

-101

Enako ():

Equals () preveri, ali je objekt s številom enak predmetu, ki je poslan kot argument ali ne.

Sintaksa metode equals () je naslednja:

javna logična vrednost je enako (predmet o)

Ta metoda ima dva parametra 1) kateri koli objekt 2) vrnjeno vrednost. Vrne true, če posredovani argument ni nič in je predmet podobnega tipa z enako številsko vrednostjo.

Primer metode enakih:

V spodnjem primeru primerjamo štiri spremenljivke med seboj. Tri spremenljivke so vrste celo število in ena vrste kratke. Prvi rezultat je napačen, saj vrednost p, ki je 5, ni enaka vrednosti q, ki je 20.

Drugi rezultat je resničen, ker je vrednost spremenljivke p in r enaka, kar je 5. Nenazadnje je izhod napačen, saj imata spremenljivki p in s različne dodeljene vrednosti.

public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}

Izhod

falsetruefalse

Razlika med primerljivim in primerjalnim programom v Javi

Razlika med primerljivim in primerjalnim programom v Javi

Tu so glavne razlike med Java Comparable in Comparator:

Primerljivo Primerjalnik
Primerljivo zagotavlja metodo compareTo () za razvrščanje elementov v Javi. Primerjalnik ponuja metodo compare () za razvrščanje elementov v Javi.
Primerljiv vmesnik je prisoten v paketu java.lang. Primerjalni vmesnik je prisoten v paketu java.util.
Logika razvrščanja mora biti v istem razredu, katerega predmet boste razvrstili. Logika razvrščanja mora biti v ločenem razredu, če želite pisati različno razvrščanje na podlagi različnih atributov predmetov.
Razred, katerega predmeti želite razvrstiti, mora izvajati primerljiv vmesnik. Razredu, katerega predmete želite razvrstiti, ni treba izvajati primerjalnega vmesnika.
Omogoča posamezna zaporedja razvrščanja. Zagotavlja več zaporedij razvrščanja.
Ta metoda lahko podatke razvrsti po naravnem vrstnem redu razvrščanja. Ta metoda razvršča podatke po prilagojenem vrstnem redu razvrščanja.
Vpliva na prvotni razred. dejanski razred se spremeni. Ne vpliva na prvotni razred, tj. Dejanski razred ni spremenjen.
V API- ju pogosto izvajajo: Koledar, razredi zavijalcev, datum in niz. Izveden je za razvrščanje primerkov tujih razredov.
Vsi razredi ovitkov in razred String izvajajo primerljiv vmesnik. Edini izvedeni razredi primerjalnika so Collator in RuleBasedColator.

Najboljše prakse med uporabo primerjalnika in primerljivega v Javi

  • Uporabite primerljiv vmesnik, če je primerjava standardna za določen razred.
  • Lambde lahko uporabljate s primerjalnikom.
  • Številni osnovni razredi, ki so na voljo v izvedbah, imajo primerljiv vmesnik.
  • Možno je uporabiti TreeSet in TreeMap ali med razvrščanjem Set ali Map.
  • Metoda compareTo () deluje s primerjalnikom, pa tudi primerljivo.
  • Primerjalni vmesnik uporabljajte le, če
  • Metoda compareTo () bo vrnila pozitivno celo število, če je prvi objekt večji od drugega, negativni, če je nižji, in nič, če sta oba enaka.