Rekommenderas, 2024

Redaktionen

Skillnad mellan jämförbar och jämförare i Java

Jämförbar och Jämförare båda används de generiska gränssnitten i Java för att jämföra objektets dataelement. Det jämförbara gränssnittet finns i paketet java.lang och Comparator-gränssnittet finns i java.util-paketet. Den grundläggande skillnaden mellan Comparable och Comparator-gränssnittet är att det jämförbara gränssnittet tillhandahåller singelsorteringssekvensen, medan komparatorgränssnittet tillhandahåller flera sorteringssekvenser. Det finns några andra skillnader mellan Comparable och Comparator gränssnitt som vi kommer att studera i jämförelsetabellen.

Jämförelsediagram

Grunder för jämförelseJämförbarjämförelse
GrundläggandeDet jämförbara gränssnittet tillåter endast en enkel sorteringssekvens.Komparatorns gränssnitt tillåter flera sorteringssekvenser.
paketDet jämförbara gränssnittet finns i java.lang-paketet.Komparatorns gränssnitt finns i java.util-paketet.
metoderDet jämförbara gränssnittet innehåller endast en enda metod
public int jämförTo (Objekt obj);
Komparatorns gränssnitt innehåller två metoder
public int jämför (Objekt obj1, Objekt obj2)
boolesiska lika (Objekt obj)
GenomförandeJämförbart gränssnitt implementeras av klassen vars objekt ska jämföras.Komparatorgränssnittet implementeras av en speratklass istället för klassen vars objekt ska jämföras.
JämförelseJämförTo (Object obj) -metoden jämför det objekt som används för att åberopa metoden med det angivna objektet passerar till metoden.Jämförelsen (Objekt obj1, Objekt obj2) -metoden jämför de båda angivna objekten som överförs till metoden.
Lista / ArrayNär en lista över objektet av jämförbar typ måste jämföras, ger samlingsklassen en metod, dvs collections.sort (lista lst).När en lista över objekt av jämförbar typ måste jämföras ger samlingsklassen en metod, dvs
Collections.sort (Lista, Jämförare).

Definition av jämförbar

Jämförbart är ett gränssnitt som finns tillgängligt i paketet java.lang. En klass implementerar Comparator-gränssnittet för att sortera objektet i naturlig ordning. Objekten sorteras i naturlig ordning betyder att objekten jämförs med sina ASCII-värden. Klasserna som implementerar det jämförbara gränssnittet är Byte, Character, Double, Float, Long, Short, String och Integer classes. Även Date and Calander-klassen implementerar också det jämförbara gränssnittet.

Det jämförbara gränssnittet innehåller bara en metod som är jämfört med (Object obj). Den här metoden jämför det objekt som används för att anropa metoden med objektet som anges i parametern. Metodens syntax är följande:

 public int jämförTo (Objekt obj); 

Metoden CompareTo (Object obj) returnerar 0, när både objektet jämfört med metoden innehåller samma värde, returnerar det -Värt värde om uppkallningsobjektet är mindre än det angivna objektet och returnerar + ve- värdet om uppkallningsobjektet har större värde jämfört med det angivna objektet. Samlingsklassen tillhandahåller en sorteringsmetod för att sortera elementen i listan. Listan (och array) -elementen i jämförbar typ kan sorteras med metoden "Collections.sort (List lst)".

Definition av jämförare

Komparatorn är ett gränssnitt som är tillgängligt i java.util-paketet. Gränssnittskompatorn implementeras inte på klassen, vars objekt ska jämföras istället för att separata klassen implementerar komparatorgränssnittet så att sorteringslogiken appliceras på varje dataelement i objektet i en annan klass. Komparatorn innehåller två metoder enligt följande:

 public int jämför (Objekt obj1, Objekt obj2) och boolesiska lika (Objekt obj) 

Metoden ovan jämför () jämför det första objektet obj1, med det andra objektet obj2. Metoden jämför () returnerar 0 när både objektet jämfört med metoden innehåller samma värde, returnerar det -värdet om objektet obj1 är mindre än då objektet obj2 och returnerar + ve- värdet om objektet obj1 har större värde jämfört med till objektet obj2. Metoderna equals () kontrollerar om specificerat objekt är lika med det uppkallande objektet. Metoden equals () returnerar sant om båda jämförda objekten är lika andra returneras det falska . Klassen Collections ger metoden för att sortera elementen i listan och komparatortypen. Listelementen i komparatortyper sorteras efter metoden Collections.sort (List, Comparator).

Huvudskillnader mellan jämförbar och jämförelse

  1. Det jämförbara gränssnittet tillåter en enkel sorteringsföljd som innebär att du kan jämföra endast ett enkelt dataelement i objektet i comparTo () -metoden å andra sidan Komparatorgränssnittet tillåter flera sorteringssekvenser som innebär att du kan jämföra flera dataelement i objektet.
  2. Det jämförbara gränssnittet implementeras av klassen vars objekt ska jämföras eftersom sorteringslogiken definieras inom samma klass. Å andra sidan implementeras komparatorns gränssnitt inte av klassen vars objekt ska jämföras eftersom sorteringslogiken definieras i de separata klasserna där varje klass definierar sortering på ett enkelt dataelement i objektet och dessa definierande klasser implementerar komparatorns gränssnitt .
  3. Det jämförbara gränssnittet ligger inuti java.lang-paketet medan Comparator-gränssnittet ligger inuti java.util-paketet.
  4. Det jämförbara gränssnittet deklarerar bara en metod som är jämfört med (Objektobj) medan Comparator-gränssnittet deklarerar två metoder som är, jämför (Objekt obj1, Objekt obj2) och lika (Object obj).
  5. Metoden comparTo (Object obj) i jämförbar metod jämförs med att ange objekt med det angivna objektet som passerat till metoden medan jämförelsen (Object obj1, Object obj2) -metoden i jämförelse jämför objekten obj1 med obj2 som överförs till metoden.
  6. Klassen Collections ger en sorteringsmetod "Collections.sort (List lst)" för att sortera objekten i jämförbar typ. Klassen Samlingar tillhandahåller sorteringsmetoden Collections.sort (List, Comparator) för att sortera objekten av komparatortyp.

Slutsats:

Om du vill sortera objekten i den naturliga beställningen kan du använda det jämförbara gränssnittet annars du vill sortera objekten baserat på vilket attribut som helst, då Comparator interface används.

Top