Vergelijkbaar versus comparator: verschil en vergelijking

Comparable en comparator zijn beide interfaces van Java, een programmeertaal op hoog niveau die wordt gebruikt om collectie-elementen te sorteren. Java biedt in feite deze twee verschillende interfaces om de objecten te sorteren.

Er zijn veel opmerkelijke verschillen tussen beide interfaces die een lijn tussen de twee creëren op basis van de functie die ze uitvoeren.

Key Takeaways

  1. Vergelijkbaar is een interface voor de natuurlijke ordening van objecten; Comparator is een extern hulpprogramma voor het vergelijken van objecten.
  2. Het implementeren van Comparable vereist het wijzigen van de klasse van de objecten die worden vergeleken; een comparator kan worden gebruikt zonder de oorspronkelijke klasse te wijzigen.
  3. Vergelijkbaar legt een enkele standaard sorteermethode op; Comparator maakt meerdere, aanpasbare sorteeropties mogelijk.

Vergelijkbaar versus vergelijker

Comparable is een interface in Java die de CompareTo-methode definieert en wordt gebruikt om natuurlijk geordende objecten te vergelijken. Het vergelijkt objecten met behulp van de "dit"-referentie. De comparator-interface sorteert objecten door rekening te houden met hun attributen. Het beschouwt objecten van twee verschillende klassen.

Vergelijkbaar versus vergelijker

Vergelijkbaar is een interface die aanwezig is in het lang-pakket van de Java-taal, en het doel ervan is om de collectie-elementen te sorteren met slechts één attribuut, zoals leeftijd, prijs, id, naam, enz.

Het is in staat zichzelf te vergelijken met elk ander object. Een object van elk type, of het nu een lijst of een array is, kan worden gesorteerd.

Comparator is een interface die aanwezig is in het util-pakket van de Java-taal en het doel ervan is om de collectie-elementen te sorteren met behulp van meerdere attributen tegelijk.

Het is een aparte klasse en staat buiten het type element dat wordt vergeleken. De klasse collections biedt een tweede sorteermethode die een comparator als parameter accepteert.

Vergelijkingstabel

Parameters van vergelijking:VergelijkbaarComparator
SorteertypeHet biedt een enkele sorteervolgorde.Het biedt meerdere sorteervolgordes.
Klasse modificatieHet wijzigt de werkelijke klasse.Het wijzigt de werkelijke klasse niet.
Pakket locatieHet is aanwezig in het java-lang pakket.Het is aanwezig in java. util-pakket.
MethodenHet heeft de methode CompareTo().Het heeft de vergelijk() methode.
SorteermethodenCollections.sort(List) methode.Collections.sort(List,Comparator) methode.

Wat is vergelijkbaar?

Zoals hierboven besproken, is vergelijkbaar een interface van de Java-programmeertaal die aanwezig is in het lang-pakket en wordt gebruikt om verzamelingselementen te sorteren door slechts één attribuut te gebruiken. De vergelijkbare interface bevat slechts één enkele methode, namelijk CompareTo().

Lees ook:  WeVideo versus Filmora: verschil en vergelijking

Het vergelijkbare object is in staat te vergelijken met de andere objecten. Om de klasse de instanties te laten vergelijken, moet de klasse de Comparable-interface implementeren.

Voor de objecten met natuurlijke ordening is een vergelijkbare interface ontwikkeld. Met andere woorden, dit betekent dat het te sorteren object de volgorde moet hebben waarin het moet worden gesorteerd.

In logische termen vergelijkt de vergelijkbare interface “deze” referentie met het object dat in de methode genoemd wordt. Wanneer een klasse de Comparable-interface implementeert, kan het object van die klasse worden gesorteerd met behulp van de verzamelingen. sort() of de Arrays. sort() methode.

De objecten worden automatisch gesorteerd in de natuurlijke volgorde die is gedefinieerd door de CompareTo-methode. Getallen, strings en vele andere typen kunnen worden vergeleken. Strings kunnen worden vergeleken door alfabetische vergelijking te gebruiken.

Verschillende ingebouwde klassen van Java implementeren de vergelijkbare interface. Het belangrijkste dat in gedachten moet worden gehouden, is dat de vergelijkbare interface alleen kan worden gebruikt om de objecten van dezelfde klasse te vergelijken.

vergelijkbaar

Wat is vergelijker?

De comparator-interface van de Java-programmeertaal is aanwezig in het util-pakket en wordt gebruikt om de collectie te sorteren op basis van meerdere attributen tegelijk.

Comparator is een totaal aparte klasse. De programmeurs gebruiken om meerdere klassen te creëren die de comparatorinterface implementeren om verschillende objecten te vergelijken.

Om een ​​collectieobject te vergelijken, is de eerste stap het maken van een klasse die de comparatormethode implementeert, die de vergelijk()-methode bevat. De volgende stap is het maken van een instantie van die klasse die de vergelijkingsinterface implementeert.

De laatste stap is het aanroepen van de methode overloaded, de methode sort() en vervolgens zowel de lijst als de instantie toewijzen van de klasse die in de vorige stap is gemaakt.

De comparator-interface vergelijkt twee objecten van verschillende klassen. De Comparator-interface bevat twee methoden, namelijk de methode Compare() en de methode Equals().

Lees ook:  LinkedIn versus Instagram: verschil en vergelijking

De methode Compare() gebruikt twee verschillende objecten als parameter om te vergelijken, en de methode equals() bepaalt of het object dat wordt voorbij is gelijk aan de aanroepende comparator.

De methode equals() retourneert een booleaanse waarde als uitvoer. True wordt geretourneerd wanneer het object passeert en het aanroepende object beide vergelijkers is en zo niet, dan wordt false geretourneerd.

De methode Compare() retourneert een geheel getal in de uitvoer, waarmee het grootste van de twee doorgegeven objecten wordt aangegeven.

comparator

Belangrijkste verschillen tussen vergelijkbaar en comparator

  1. De vergelijkbare interface biedt een enkele sortering volgorde waarin de verzameling kan worden gesorteerd op een enkel element zoals de id, naam of een specifieke parameter, terwijl de comparator-interface een meervoudige sorteervolgorde biedt waarin de verzameling kan worden gesorteerd op meerdere elementen zoals de id, naam of een andere parameter .
  2. De vergelijkbare interface is van invloed op de oorspronkelijke klasse omdat deze de daadwerkelijke klasse wijzigt, terwijl aan de andere kant de vergelijkingsinterface op geen enkele manier invloed heeft op de oorspronkelijke klasse, aangezien de werkelijke klasse hetzelfde blijft zonder enige wijziging.
  3. Een vergelijkbare interface is aanwezig in het lang-pakket van Java, terwijl de comparator-interface aanwezig is in het util-pakket van Java.
  4. In de vergelijkbare interface wordt de methode CompareTo() gebruikt om de elementen te sorteren, terwijl in de vergelijkingsinterface de methode Compare() wordt gebruikt om de elementen te sorteren.
  5. De vergelijkbare typelijstelementen van een collectie kunnen worden gesorteerd met behulp van de collecties. Sorteer (Lijst) methode, terwijl aan de andere kant de lijstelementen van het comparatortype van een verzameling kunnen worden gesorteerd met behulp van de verzamelingen. Sorteer (Lijst, Comparator) methode.
Verschil tussen X en Y 2023 05 06T084306.029
Referenties
  1. https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
  2. https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
  3. https://ieeexplore.ieee.org/abstract/document/6042862/

Laatst bijgewerkt: 17 juli 2023

stip 1
Een verzoek?

Ik heb zoveel moeite gestoken in het schrijven van deze blogpost om jou van waarde te kunnen zijn. Het zal erg nuttig voor mij zijn, als je overweegt het te delen op sociale media of met je vrienden/familie. DELEN IS ️

5 gedachten over "Vergelijkbaar versus comparator: verschil en vergelijking"

  1. De belangrijkste verschillen die u hebt aangegeven tussen de Comparable- en Comparator-interfaces zijn zeer informatief en nuttig bij het begrijpen van de verschillen tussen de twee. Uw uitleg over hoe de Comparable-interface de objecten automatisch sorteert in de natuurlijke volgorde die is gedefinieerd door de CompareTo-methode is bijzonder verhelderend.

    Antwoorden
    • Bedankt voor het uitleggen van de logica achter de Comparable- en Comparator-interfaces. Deze informatie zal zeker helpen bij het effectiever implementeren van sorteermechanismen.

      Antwoorden
    • Ik ben het ermee eens, het artikel biedt een duidelijke en beknopte vergelijking van Comparable- en Comparator-interfaces, waardoor het gemakkelijker wordt om hun unieke functies en gebruiksscenario's te begrijpen.

      Antwoorden
  2. De uitsplitsing van de Comparable- en Comparator-interfaces en hun verschillende kenmerken is zeer leerzaam. Uw uitgebreide uitleg over het doel en het gebruik van deze interfaces zal ontwikkelaars ongetwijfeld helpen bij het nemen van weloverwogen ontwerpbeslissingen.

    Antwoorden
    • Ik waardeer de gedetailleerde vergelijking die hier wordt gepresenteerd. Het is waardevolle informatie voor ontwikkelaars die hun begrip van sorteer- en vergelijkingstechnieken in Java willen vergroten.

      Antwoorden

Laat een bericht achter

Dit artikel bewaren voor later? Klik op het hartje rechtsonder om op te slaan in je eigen artikelenbox!