Anbefalt, 2024

Redaksjonens

Forskjellen mellom sammenligningsbar og komparator i Java

Sammenliknbare og Comparator begge er de generiske grensesnittene i Java som brukes til å sammenligne dataelementene til objektene. Det sammenlignbare grensesnittet er tilstede i java.lang-pakken, og Comparator-grensesnittet er tilstede i java.util-pakken. Den grunnleggende forskjellen mellom Comparable og Comparator-grensesnittene er at Comparable-grensesnittet gir den enkle sorteringssekvensen, mens Comparator-grensesnittet gir flere sorteringssekvenser. Det er noen andre forskjeller mellom Comparable og Comparator grensesnitt som vi vil studere i Sammenligningstabellen.

Sammenligningstabel

Grunnlag for sammenligningsammenlignkomparator
grunn~~POS=TRUNCSammenligningsgrensesnittet tillater bare enkelt sorteringssekvens.Komparatorgrensesnittet tillater flere sorterings-sekvenser.
pakkerDet sammenlignbare grensesnittet er tilstede i java.lang-pakken.Komparatorgrensesnittet er tilstede i java.util-pakken.
metoderDet sammenlignbare grensesnittet inneholder bare en enkelt metode
offentlig int sammenligning (Objekt obj);
Komparatorgrensesnittet inneholder to metoder
offentlig int sammenligne (Objekt obj1, Objekt obj2)
boolske likeverdige (Objekt obj)
GjennomføringKomparativt grensesnitt implementeres av klassen hvis objekter skal sammenlignes.Komparator grensesnitt er implementert av en sperat klasse i stedet for klassen hvis objekter skal sammenlignes.
SammenligningSammenlignTo (Object obj) -metoden sammenligner objektet som brukes til å påberope metoden med det angitte objektet, passerer til metoden.Sammenligningen (Objekt obj1, Objekt obj2) -metoden sammenligner begge de angitte objektene som sendes til metoden.
List / ArrayNår en liste over objektet av sammenlignbar type skal sammenlignes, gir samlingsklassen en metode, dvs. Collections.sort (List lst).Når en liste over objekter av sammenlignbar type skal sammenlignes, gir samlingsklassen en metode, dvs.
Samlinger.sort (Liste, Komparator).

Definisjon av sammenlignbare

Sammenligning er et grensesnitt som er tilgjengelig i java.lang-pakken. En klasse implementerer Comparator-grensesnittet, for å sortere objektet i naturlig rekkefølge. Objektene er sortert i naturlig rekkefølge betyr at objektene blir sammenlignet med deres ASCII-verdier. Klassene som implementerer Comparable-grensesnittet er Byte, Character, Double, Float, Long, Short, String og Integer-klasser. Selv dato- og kalander-klassen implementerer også det sammenlignbare grensesnittet.

Det sammenlignbare grensesnittet inneholder bare en metode som er SammenlignTo (Objektobjektiv). Denne metoden sammenligner objektet som brukes til å påkalle metoden med objektet som er angitt i parameteren. Syntaksen til metoden er som følger:

 offentlig int sammenligning (Objekt obj); 

SammenlignTo (Object obj) -metoden returnerer 0, når både objektet sammenlignet med metoden inneholder samme verdi, returnerer det -Vær verdi hvis oppkallingsobjektet er mindre enn det angitte objektet og returnerer + ve- verdien dersom oppkallingsobjektet har større verdi i forhold til det angitte objektet. Samlingsklassen gir en sorteringsmetode for sortering av elementene i listen. Listen (og array) -elementene i sammenlignbar type kan sorteres ved hjelp av metoden "Collections.sort (List lst)".

Definisjon av komparator

Komparator er et grensesnitt som er tilgjengelig i java.util-pakken. Grensesnittet Comparator er ikke implementert på klassen hvis objekter skal sammenlignes i stedet for at separate klasser implementerer komparatorgrensesnittet slik at sorteringslogikken blir brukt på hvert dataelement i objektet i en annen klasse. Komparator inneholder to metoder som følger:

 offentlig int sammenligne (Objekt obj1, Objekt obj2) og boolesk likestilling (Objekt obj) 

Sammenlign-metoden ovenfor sammenligner det første objektet obj1, med det andre objektet obj2. Sammenlign () -metoden returnerer 0 når både objektet sammenlignet med metoden inneholder samme verdi, returnerer det -Vær verdi hvis objektet obj1 er mindre enn da objektet obj2 og returnerer + ve- verdi hvis objektet obj1 har større verdi sammenlignet med til objektet obj2. Likene () -metoderne kontrollerer om spesifisert objekt er lik det påkallende objektet. Equals () -metoden returnerer sann hvis begge de sammenlignede objektene er like andre, returneres det falsk . Klassen Collections gir metoden for sortering av elementene i liste og komparatortype. Listenelementene i komparatortyper er sortert etter metoden Collections.sort (List, Comparator).

Nøkkelforskjeller mellom sammenlignbare og komparator

  1. Det tilsvarende grensesnittet tillater enkelt sorteringssekvens som betyr at du kun kan sammenligne bare enkelt dataelement i objektet i comparTo () -metoden derimot. Comparator-grensesnittet tillater flere sorteringssekvenser som betyr at du kan sammenligne flere dataelementer av objektet.
  2. Det sammenlignbare grensesnittet implementeres av klassen hvis objekter skal sammenlignes fordi sorteringslogikken er definert i samme klasse. På den annen side blir Comparator-grensesnittet ikke implementert av klassen hvis objekter skal sammenlignes fordi sorteringslogikken er definert i de separate klassene hvor hver klasse definerer sortering på enkeltdataelement av objektet, og disse definerende klassene implementerer komparatorgrensesnittet .
  3. Det sammenlignbare grensesnittet ligger i java.lang-pakken, mens Comparator-grensesnittet ligger i java.util-pakken.
  4. Sammenligningsgrensesnittet erklærer bare en metode som er sammenlignTo (Objektobj), mens Comparator-grensesnittet erklærer to metoder som er, sammenligner (Objekt obj1, Objekt obj2) og tilsvarer (Object obj).
  5. SammenlignTo (Object obj) -metoden i Comparable sammenligner metode som påkaller objekt med det angitte objektet som sendes til metoden, mens sammenligningen (Objekt obj1, Objekt obj2) -metoden til Comparator sammenligner objektene obj1 med obj2 som sendes til metoden.
  6. Kolleksjonsklassen gir en sorteringsmetode "Collections.sort (List lst)" for å sortere objekter av den sammenlignbare typen. Klassen Samlinger gir sorteringsmetoden Collections.sort (List, Comparator) for å sortere objektene til Comparator type.

Konklusjon:

Hvis du vil sortere objektene i den naturlige bestillingen, kan du bruke det tilsvarende grensesnittet annet du vil sortere objektene basert på et attribut, og deretter brukes Comparator-grensesnitt.

Top