Skillnaden mellan Comparable och Comparator i Java

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 15 Maj 2024
Anonim
More than Coffee: how to get into IT and stay alive. We answer your questions. Java and beyond.
Video: More than Coffee: how to get into IT and stay alive. We answer your questions. Java and beyond.

Innehåll

Jämförelse och komparator är båda de generiska gränssnitten i Java som används för att jämföra dataelementen i objekten. Det jämförbara gränssnittet finns i java.lang-paketet och Comparator-gränssnittet finns i java.util-paketet. Den grundläggande skillnaden mellan jämförbara och jämförande gränssnitt är att det jämförbara gränssnittet ger den enstaka sorteringssekvensen medan Comparator-gränssnittet tillhandahåller flera sorteringssekvenser. Det finns några andra skillnader mellan jämförbart och jämförande gränssnitt som vi kommer att studera i jämförelsetabellen.


  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseJämförbarComparator
Grundläggande Det jämförbara gränssnittet tillåter endast en enda sorteringssekvens.Comparator-gränssnittet tillåter flera sorteringssekvenser.
paket Det jämförbara gränssnittet finns i paketet java.lang.Comparator-gränssnittet finns i paketet java.util.
metoder Det jämförbara gränssnittet innehåller endast en enda metod
public int jämförTo (Object obj);
Comparator-gränssnittet innehåller två metoder
public int jämför (Object obj1, Object obj2)
booleska lika (Obj.obj)
GenomförandeJämförbart gränssnitt implementeras av klassen vars objekt ska jämföras.Jämförargränssnitt implementeras av en speratklass istället för den klass vars objekt ska jämföras.
Jämförelse Metoden CompareTo (Object obj) jämför objektet som används för att åberopa metoden med det angivna objektet som passerar till metoden.Metoden jämför (Objekt obj1, Objekt obj2) jämför de båda de angivna objekten som skickas till metoden.
Lista / ArrayNär en lista över objekt av jämförbar typ måste jämföras, tillhandahåller samlingsklassen en metod, dvs Collections.sort (List lst).När en lista över objekt av jämförbar typ måste jämföras, tillhandahåller samlingsklassen en metod, d.v.s.
Collections.sort (List, Comparator).


Definition av jämförbar

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

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

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

CompareTo (Object obj) -metoden återgår 0, när både objektet jämfört med metoden innehåller samma värde, returnerar det -ve värde om det åkallande objektet är mindre än då det specificerade objektet och returnerar + ve värde om det åkallande objektet har större värde jämfört med det angivna objektet. Klassen Samlingar ger en sorteringsmetod för att sortera elementen i listan. Lista (och array) -element av jämförbar typ kan sorteras med metoden "Collections.sort (List lst)".


Definition av Comparator

Comparator är ett gränssnitt som är tillgängligt i java.util-paketet. Gränssnittskomparatorn implementeras inte i klassen vars objekt ska jämföras, utan implementerar separat klass Comparator-gränssnittet så att sorteringslogiken tillämpas på varje dataelement i objektet i en annan klass. Jämförare innehåller två metoder enligt följande:

public int jämför (Object obj1, Object obj2) och booleska lika (Object obj)

Metoden jämför () ovan jämför det första objektet obj1 med det andra objektet obj2. Jämför () -metoden returnerar 0 när både objektet jämfört med metoden innehåller samma värde, returnerar det -ve värde om objektet obj1 är mindre än objektet obj2 och returnerar + ve värde om objektet obj1 har större värde jämfört med objektet obj2. Metoderna lika () kontrollerar om specificerat objekt är lika med det åkallande objektet. Metoden lika () avkastning Sann Om båda de jämförda objekten är lika, returnerar det falsk. Klassen Samlingar tillhandahåller metoden för att sortera elementen i listan och komparatortypen. Listelementen för komparatortyper sorteras efter metoden Collections.sort (List, Comparator).

  1. Det jämförbara gränssnittet tillåter en enkel sorteringssekvens, vilket innebär att du bara kan jämföra enstaka dataelement i objektet i metoden CompareTo () å andra sidan Comparator-gränssnittet tillåter flera sorteringssekvenser som betyder 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 i samma klass. Å andra sidan implementeras inte Comparator-gränssnittet av klassen vars objekt ska jämföras eftersom sorteringslogiken definieras i de separata klasserna där varje klass definierar sortering på ett enda dataelement i objektet och dessa definierande klasser implementerar Comparator-gränssnittet .
  3. Det jämförbara gränssnittet ligger i java.lang-paketet medan Comparator-gränssnittet ligger inne i java.util-paketet.
  4. Det jämförbara gränssnittet deklarerar endast en metod som är jämförTo (Objekt obj) medan Comparator-gränssnittet deklarerar två metoder som är, jämför (Objekt obj1, Objekt obj2) och lika (Objekt obj).
  5. Metoden CompareTo (Objekt obj) i Jämförbar jämför metod som åberopar objekt med det angivna objektet som skickas till metoden medan jämförmetoden (Objekt obj1, Objekt obj2) i Comparator jämför objekt obj1 med Obj2 som skickas till metoden.
  6. Klassen Samlingar tillhandahåller en sorteringsmetod “Collections.sort (List lst)” för att sortera objekt av jämförbar typ. Klassen Samlingar tillhandahåller sorteringsmetod Collections.sort (List, Comparator) för att sortera objekt av Comparator-typ.

Slutsats:

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