Priporočena, 2024

Izbira Urednika

Razlika med primerljivim in primerjalnikom v Javi

Oba primerljiva in primerljiva sta generična vmesnika v Javi, ki se uporablja za primerjavo podatkovnih elementov objektov. Vmesnik Comparable je prisoten v paketu java.lang in vmesnik Comparator je v paketu java.util. Osnovna razlika med vmesniki Comparable in Comparator je v tem, da Comparable vmesnik zagotavlja posamezno zaporedje razvrščanja, medtem ko vmesnik Comparator omogoča večkratno razvrščanje zaporedij. Obstaja še nekaj razlik med vmesnikom Comparable in Comparator, ki ga bomo preučili v tabeli za primerjavo.

Primerjalna tabela

Podlaga za primerjavoPrimerljivoPrimerjalnik
OsnovnoPrimerljiv vmesnik omogoča le eno vrstno vrstico za razvrščanje.Vmesnik Comparator omogoča več razvrščenih zaporedij.
PaketiPrimerljiv vmesnik je prisoten v paketu java.lang.Vmesnik Comparator je v paketu java.util.
MetodePrimerljiv vmesnik vsebuje samo eno metodo
javni int compareTo (Object obj);
Vmesnik Comparator vsebuje dva načina
javni int primer (Object obj1, Predmet obj2)
boolean enako (Object obj)
IzvajanjePrimerljivi vmesnik izvaja razred, katerega predmete je treba primerjati.Vmesnik za primerjavo se izvaja z razredom sperate namesto razreda, katerega predmete je treba primerjati.
PrimerjavaMetoda compareTo (Object obj) primerja objekt, ki se uporablja za priklic metode z določenimi prehodi objekta na metodo.Metoda primerja (Object obj1, Object obj2) primerja oba podana predmeta, ki sta bila posredovana metodi.
Seznam / matrikaKadar je treba primerjati seznam objektov vrste Comparable, razred Collection vsebuje metodo Collections.sort (List lst).Kadar je treba primerjati seznam objektov vrste Comparable, razred zbirke zagotavlja metodo tj
Zbirke.seort (seznam, primerjava).

Opredelitev primerljivih

Primerljiv je vmesnik, ki je na voljo v paketu java.lang. Razred izvede vmesnik Comparator, da razvrsti svoj objekt v naravnem vrstnem redu. Objekti so razvrščeni v naravnem vrstnem redu, kar pomeni, da so objekti primerjani po ASCII vrednostih. Razredi, ki izvajajo vmesnik Comparable, so razreda Byte, Character, Double, Float, Long, Short, String in Integer. Tudi razred Date in Calander uvaja tudi Comparable vmesnik.

Primerljiv vmesnik vsebuje samo eno metodo, ki je Primerjaj (Object obj). Ta metoda primerja objekt, ki se uporablja za priklic metode, z objektom, podanim v parametru. Sintaksa metode je naslednja:

 javni int compareTo (Object obj); 

Metoda CompareTo (Object obj) vrne 0, kadar oba predmeta, ki ju primerjata metoda, vsebuje isto vrednost, vrne vrednost -ve, če je predmet, ki kliče, manjši od navedenega objekta, in vrne + ve vrednost, če ima predmet, ki kliče, večjo vrednost. v primerjavi s podanim predmetom. Razred Zbirke zagotavlja metodo razvrščanja za razvrščanje elementov seznama. Elemente seznama (in matrike) tipa Comparable lahko razvrstimo z metodo “Collections.sort (List lst)”.

Opredelitev primerjalnika

Comparator je vmesnik, ki je na voljo v paketu java.util. Vmesnik za primerjavo ni izveden na razredu, katerega predmete je treba primerjati, namesto ločenega razreda, ki izvaja vmesnik Comparator, tako da se logika razvrščanja uporabi za vsak podatkovni element objekta v drugem razredu. Primerjava vsebuje dve metodi:

 javni int primer (Object obj1, Objekt obj2) in boolean enako (Object obj) 

Metoda compare () zgoraj primerja prvi objekt obj1 z drugim predmetom obj2. Metoda compare () vrne 0, kadar oba predmeta, ki ju primerjata z metodo, vsebuje isto vrednost, vrne vrednost -ve, če je objekt obj1 manjši od objekta obj2 in vrne + ve vrednost, če ima objekt obj1 večjo vrednost v primerjavi na predmet obj2. Metode equals () preveri, ali je podan objekt enak predmetu, ki kliče. Metoda equals () vrne true, če sta oba primerjana objekta enaka, sicer vrne false . Razred Zbirke nudi metodo za razvrščanje elementov seznama in primerjalnega tipa. Elementi seznama za primerjalne tipe so razvrščeni po metodi Collections.sort (List, Comparator).

Ključne razlike med primerljivimi in primerjalnimi

  1. Primerljiv vmesnik omogoča enojno razvrščanje zaporedja, kar pomeni, da lahko primerjate samo en podatkovni element objekta v metodi compareTo (), po drugi strani pa Comparator vmesnik omogoča več sortirnih sekvenc, kar pomeni, da lahko primerjate več podatkovnih elementov objekta.
  2. Primerljivi vmesnik izvaja razred, katerega objekte je treba primerjati, ker je logika razvrščanja definirana znotraj istega razreda. Po drugi strani vmesnik Comparator ni izveden s strani razreda, katerega objekte je treba primerjati, ker je logika razvrščanja definirana v ločenih razredih, kjer vsak razred definira razvrščanje na posameznem podatkovnem elementu objekta in ti definirajoči razredi implementirajo vmesnik Comparator. .
  3. Primerljivi vmesnik je znotraj paketa java.lang, medtem ko je vmesnik Comparator znotraj paketa java.util.
  4. Primerljivi vmesnik razglasi le eno metodo, ki je compareTo (Object obj), medtem ko vmesnik Comparator razglasi dve metodi, ki sta, primerjaj (Object obj1, Object obj2) in enaka (Object obj).
  5. Metoda compareTo (Object obj) v Comparable primerja metodo zaznavanja metode z določenim objektom, ki je bil posredovan metodi, medtem ko metoda Comparator primerja (Object obj1, Object obj2) primerja objekte obj1 z obj2, ki so posredovani metodi.
  6. Razred Zbirke zagotavlja metodo razvrščanja »Zbirke.sort (Seznam lst)« za razvrščanje objektov vrste Primerljiv. Razred Zbirke zagotavlja metodo razvrščanja Collections.sort (List, Comparator) za razvrščanje objektov tipa Comparator.

Sklep:

Če želite razvrstiti objekte v naravnem vrstnem redu, lahko uporabite primerljiv vmesnik, ki ga želite razvrstiti glede na kateri koli atribut, nato pa uporabite vmesnik Comparator.

Top