Ajánlott, 2024

Szerkesztő Választása

A különbség az összehasonlítható és komparátor között Java-ban

Az összehasonlítható és komparátor mindkettő a Java általános interfészei, amelyeket az objektumok adatelemeinek összehasonlítására használnak. Az összehasonlítható interfész a java.lang csomagban található, a Comparator felület pedig a java.util csomagban található. Az összehasonlítható és komparátor interfészek közötti különbség az, hogy az összehasonlítható interfész biztosítja az egyetlen rendezési szekvenciát, míg a Comparator interfész biztosítja a többszörös válogató szekvenciákat. A Comparable és Comparator interfész között vannak más különbségek is, amelyeket az összehasonlító táblázatban fogunk tanulmányozni.

Összehasonlító táblázat

Az összehasonlítás alapjaHasonlóösszehasonlító
AlapvetőAz összehasonlítható interfész csak egyetlen rendezési sorozatot tesz lehetővé.A Comparator interfész lehetővé teszi több rendezési szekvenciát.
csomagokAz összehasonlítható felület a java.lang csomagban található.A komparátor interfész a java.util csomagban található.
MódAz összehasonlítható felület csak egyetlen módszert tartalmaz
nyilvános int CompareTo (Object obj);
A Comparator felület két módszert tartalmaz
nyilvános int összehasonlítás (Object obj1, Object obj2)
boolean egyenlő (Object obj)
VégrehajtásAz összehasonlítható felületet az az osztály végzi, amelynek objektumait összehasonlítani kell.A komparátor interfészt inkább egy osztályozott osztály hajtja végre az osztályba, amelynek objektumai összehasonlíthatók.
ÖsszehasonlításAz CompareTo (Object obj) módszer összehasonlítja azt az objektumot, amelyet a módszer meghívására használunk a megadott objektumhoz.Az összehasonlítás (Object obj1, Object obj2) módszer összehasonlítja mind a megadott objektumot, hogy átadja a módszert.
List / ArrayHa az Összehasonlítható típus objektumának listáját össze kell hasonlítani, akkor a Gyűjtemény osztály egy módszert, azaz a Gyűjtemények sorozatot (List lst) adja meg.Ha összehasonlítható típusú objektumok listáját össze kell hasonlítani, akkor a Gyűjtemény osztály egy módszert, azaz
Collections.sort (lista, összehasonlító).

Összehasonlítható definíció

Az összehasonlítható egy olyan felület, amely elérhető a java.lang csomagban. Az osztály végrehajtja a Comparator felületet, hogy rendezze a tárgyat természetes sorrendben. Az objektumok természetes sorrendben vannak rendezve, ami azt jelenti, hogy az objektumokat ASCII értékükkel hasonlítják össze. Az összehasonlítható felületet megvalósító osztályok: bájt, karakter, kettős, úszó, hosszú, rövid, sztring és integer osztályok. Még a Dátum és a Calander osztály is alkalmazza az összehasonlítható felületet.

Az Összehasonlítható felület csak egy olyan módszert tartalmaz, amely a CompareTo (Object obj). Ez a módszer összehasonlítja a metódus meghívására használt objektumot a paraméterben megadott objektummal. A módszer szintaxisa a következő:

 nyilvános int CompareTo (Object obj); 

A CompareTo (Object obj) metódus visszaáll 0-ra, amikor mindkét objektum összehasonlítja az értéket, akkor visszatér -ve érték, ha a hívó objektum kisebb, mint a megadott objektum, és visszaadja a + értéket, ha a meghívó objektum nagyobb A gyűjteményosztály egy sorrendet biztosít a lista elemeinek rendezéséhez. Az Összehasonlítható típus lista (és tömb) elemeit a „Gyűjtemények.lista (Lst lst)” módszerrel rendezheti.

A komparátor meghatározása

A komparátor egy olyan felület, amely elérhető a java.util csomagban. Az interfész Comparator nem kerül végrehajtásra azon osztályon, amelynek objektumait összehasonlítani kell, hanem külön osztályt valósít meg a Comparator interfészt úgy, hogy a rendezési logika az objektum minden egyes adatelemére egy másik osztályban kerül alkalmazásra. Az összehasonlító kétféle módszert tartalmaz:

 nyilvános int összehasonlítás (Object obj1, Object obj2) és logikai egyenlő (Object obj) 

A fenti összehasonlítás () módszer összehasonlítja az első objektum obj1-et, a második objekt2 objektumot. Az összehasonlítás () metódus 0 visszatér, ha mindkét objektum összehasonlítja az azonos értéket, akkor visszaadja a -ve értéket, ha az objekt1 objektum kisebb, mint az objekt2 objektum, és visszaadja a + ve értéket, ha az objektum objektum értéke nagyobb, mint az objekt1. az objektum objektumhoz. Az egyenlő () módszerek ellenőrzik, hogy a megadott objektum megegyezik-e a hívó objektummal. Az egyenlő () metódus igaz, ha a két összehasonlított objektum egyenlő, és hamis . A gyűjteményosztály a lista és az összehasonlító típus elemeinek rendezésének módját adja meg. Az összehasonlító típusok listájának elemeit a Collections.sort (List, Comparator) módszerrel rendezi.

Az összehasonlítható és összehasonlító legfontosabb különbségek

  1. Az összehasonlítható interfész lehetővé teszi, hogy egyetlen válogatási sorrendet használjunk, ami azt jelenti, hogy az objektum egyetlen adatelemét összehasonlíthatja az összehasonlító () módszerrel, másrészt a Comparator felület lehetővé teszi, hogy több rendezési szekvenciát hasonlítson össze az objektum több adatelemének összehasonlításával.
  2. Az összehasonlítható felületet az az osztály végzi, amelynek objektumait összehasonlítani kell, mivel a rendezési logika ugyanazon az osztályon belül van meghatározva. Másrészt a Comparator interfészt nem valósítja meg az az osztály, amelynek objektumait össze kell hasonlítani, mivel a rendezési logikát a külön osztályok határozzák meg, ahol minden osztály meghatározza az objektum egyetlen adatelemének rendezését, és ezek a meghatározó osztályok végrehajtják a Comparator felületet .
  3. Az összehasonlítható felület a java.lang csomagban található, míg a Comparator felület a java.util csomagban található.
  4. Az Összehasonlítható interfész csak egy módszert ismertet, amely hasonlít össze (Objektum objektum), míg a Comparator felület két módszert jelez ki, hasonlítsa össze (Object obj1, Object obj2) és egyenlő (Object obj).
  5. Az Összehasonlítható összehasonlító (Object obj) módszer összehasonlítja az objektumot meghívó metódust a megadott objektummal, míg a Comparator összehasonlítása (Object obj1, Object obj2) módszere összehasonlítja az objektum objektum objektumát objektummal2, amelyeket a módszerhez továbbítanak.
  6. A Gyűjtemények osztály a „Gyűjtemények sorba rendezése” (Sort.sort (List lst)) rendezési módot nyújt az Összehasonlítható típus objektumok rendezéséhez. A Gyűjtemények osztályban a Gyűjtemények sorrendje (Összeadás, Lista, Összehasonlítás) a Comparator típus objektumai rendezésére szolgál.

Következtetés:

Ha az objektumokat a természetes megrendelésben szeretné rendezni, akkor az összehasonlítható felületet használhatja, amellyel az objektumokat bármilyen attribútum alapján rendezheti, majd a Comparator felületet használja.

Top