Forskellen mellem sammenlignelig og komparator i Java

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 15 Kan 2024
Anonim
Calling All Cars: True Confessions / The Criminal Returns / One Pound Note
Video.: Calling All Cars: True Confessions / The Criminal Returns / One Pound Note

Indhold

Sammenlignelig og komparator er begge de generiske grænseflader i Java, der bruges til at sammenligne dataelementerne på objekter. Den sammenlignelige grænseflade er til stede i java.lang-pakken, og Comparator-grænsefladen er til stede i java.util-pakken. Den grundlæggende forskel mellem sammenlignings- og sammenligningsgrænseflader er, at den sammenlignelige grænseflade tilvejebringer den ene sorteringssekvens, hvorimod sammenligningsgrænsefladen tilvejebringer de flere sorteringssekvenser. Der er nogle andre forskelle mellem sammenlignings- og sammenligningsgrænseflade, som vi vil undersøge i sammenligningstabellen.


  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningSammenligneligkomparator
Grundlæggende Den sammenlignelige interface tillader kun en enkelt sorteringssekvens.Comparator-interface giver mulighed for flere sorteringssekvenser.
pakker Den sammenlignelige grænseflade er til stede i java.lang-pakken.Comparator-interface er til stede i java.util-pakken.
Metoder Den sammenlignelige grænseflade indeholder kun en enkelt metode
offentlig int sammenligningTo (Object obj);
Comparator-grænsefladen indeholder to metoder
offentlig int-sammenligning (Object obj1, Object obj2)
boolsk lig (Obj. obj)
ImplementeringSammenlignelig interface implementeres af den klasse, hvis objekter skal sammenlignes.Sammenligningsgrænsefladen implementeres i stedet af en speratklasse til den klasse, hvis objekter skal sammenlignes.
Sammenligning Metoden CompareTo (Object obj) sammenligner det objekt, der bruges til at påkalde metoden med det specificerede objekt, der videregives til metoden.Metoden sammenlign (Objekt obj1, Objekt obj2) sammenligner de begge de specificerede objekter, der sendes til metoden.
Liste / ArrayNår en liste over objektet af sammenlignelig type skal sammenlignes, giver samlingsklassen en metode, dvs. Collections.sort (Liste lst).Når en liste over objekter af sammenlignelig type skal sammenlignes, giver samlingsklassen en metode, dvs.
Collections.sort (Liste, sammenligning).


Definition af sammenlignelig

Sammenlignelig er en grænseflade, der er tilgængelig i java.lang-pakken. En klasse implementerer Comparator-interface for at sortere dets objekt i naturlig rækkefølge. Objekterne sorteres i naturlig rækkefølge betyder, at objekterne sammenlignes med deres ASCII-værdier. Klasserne, der implementerer den sammenlignelige grænseflade er klasser Byte, Character, Double, Float, Long, Short, String og Heeltal. Selv klassen Date and Calander implementerer også den sammenlignelige grænseflade.

Den sammenlignelige grænseflade indeholder kun en metode, der er CompareTo (Object obj). Denne metode sammenligner det objekt, der bruges til at påkalde metoden med det objekt, der er specificeret i parameteren. Syntaks af metoden er som følger:

offentlig int sammenligningTo (Object obj);

CompareTo (Object obj) -metoden vender tilbage 0, når begge objektet sammenlignet med metoden indeholder den samme værdi, vender det tilbage ve værdi, hvis det påberåbte objekt er mindre end det specificerede objekt og vender tilbage + ve værdi, hvis det påberåbte objekt har større værdi sammenlignet med det specificerede objekt. Klassen Samlinger giver en sorteringsmetode til sortering af elementerne på listen. Liste (og array) -elementer af sammenlignelig type kan sorteres ved hjælp af metoden "Collections.sort (List lst)".


Definition af komparator

Comparator er en grænseflade, der er tilgængelig i java.util-pakken. Interfacekomparatoren implementeres ikke på den klasse, hvis objekter skal sammenlignes, i stedet implementerer separat klasse Comparator-grænsefladen, så sorteringslogikken anvendes til hvert dataelement i objektet i en anden klasse. Sammenligning indeholder to metoder som følger:

offentlig int-sammenligning (Objekt obj1, Objekt obj2) og boolsk lig (Objekt obj)

Sammenlign-metoden ovenfor sammenligner det første objekt obj1 med det andet objekt obj2. Sammenlign () -metoden vender tilbage 0 når begge objekt sammenlignet med metoden indeholder den samme værdi, vender det tilbage ve værdi, hvis objektet obj1 er mindre end derefter objektet obj2 og vender tilbage + ve værdi, hvis objektet obj1 har større værdi sammenlignet med objektet obj2. Metoderne lig () kontrollerer, om det specificerede objekt er lig med det påkaldende objekt. Metoden er lig () tilbage rigtigt hvis begge de sammenlignede objekter er ens ellers vender det tilbage falsk. Samlingsklassen indeholder metoden til at sortere elementerne i listen og komparatortypen. Listeelementerne for komparatortyper sorteres efter metoden Collections.sort (Liste, sammenligning).

  1. Den sammenlignelige grænseflade tillader en enkelt sorteringssekvens, der betyder, at du kun kan sammenligne enkelt dataelement af objektet i sammenligningsto () -metoden på den anden side Comparator-interface tillader flere sorteringssekvenser, der betyder, at du kan sammenligne flere dataelementer af objektet.
  2. Den sammenlignelige grænseflade implementeres af den klasse, hvis objekter skal sammenlignes, fordi sorteringslogikken er defineret i den samme klasse. På den anden side implementeres ikke Comparator-grænsefladen af ​​den klasse, hvis objekter skal sammenlignes, fordi sorteringslogikken er defineret i de separate klasser, hvor hver klasse definerer sortering på et enkelt dataelement i objektet, og disse definerende klasser implementerer Comparator-interface .
  3. Den sammenlignelige grænseflade ligger inde i java.lang-pakken, mens Comparator-grænsefladen ligger inde i java.util-pakken.
  4. Den sammenlignelige grænseflade erklærer kun én metode, der er sammenligneTo (Objekt obj), mens Comparator-grænsefladen deklarerer to metoder, der er, sammenlign (Objekt obj1, Objekt obj2) og lig (Objekt obj).
  5. Metoden CompareTo (Object obj) i Comparable sammenligner metode, der påberåber sig objekt med det specificerede objekt, der er videregivet til metoden, mens sammenligningsmetoden (Object obj1, Object obj2) i Comparator sammenligner obj1 obj1 med obj2, der overføres til metoden.
  6. Samlingsklassen giver en sorteringsmetode "Collections.sort (List lst)" til at sortere objekterne af den sammenlignelige type. Klassen Samling indeholder sorteringsmetode Collections.sort (Liste, sammenligning) til sortering af objekter af komparatortype.

Konklusion:

Hvis du vil sortere objekterne i den naturlige rækkefølge, kan du bruge den sammenlignelige grænseflade ellers, du vil sortere objekterne baseret på en hvilken som helst attribut, så bruges Comparator-interface.