Különbség az összehasonlítható és az összehasonlító Java-ban
Tartalom
- Összehasonlító táblázat
- Az összehasonlítható meghatározása
- Az összehasonlító meghatározása
- Következtetés:
Az Összehasonlítható és az Összehasonlító is a Java általános interfészei, amelyeket az objektumok adatelemeinek összehasonlítására használnak. A kompatibilis felület a java.lang csomagban, az összehasonlító felület a java.util csomagban található. Az alapvető különbség az összehasonlítható és az összehasonlító interfészek között az, hogy az összehasonlítható interfész biztosítja az egyetlen válogatási sorrendet, míg az összehasonlító interfész biztosítja a több rendezési sorrendet. Van néhány más különbség az összehasonlítható és az összehasonlító felület között is, amelyeket az Összehasonlítási táblázatban tanulmányozunk.
- Összehasonlító táblázat
- Meghatározás
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | Hasonló | összehasonlító |
---|---|---|
Alapvető | A Kompatibilis felület csak egyetlen válogatási sorrendet tesz lehetővé. | A Komparátor felület több rendezési szekvenciát tesz lehetővé. |
csomagok | A kompatibilis felület a java.lang csomagban található. | A komparátor felület a java.util csomagban található. |
Mód | Az összehasonlítható felület csak egyetlen módszert tartalmaz public int CompareTo (Objektum obj); | Az összehasonlító felület két módszert tartalmaz nyilvános int összehasonlítás (obj1 objektum, obj2 objektum) logikai egyenlő (obj objektum) |
Végrehajtás | A hasonló felületet az az osztály végzi, amelynek objektumait összehasonlítani kell. | Az összehasonlító felületet egy spektrumosztály valósítja meg annak az osztálynak a helyett, amelynek objektumait összehasonlítani kell. |
Összehasonlítás | A CompareTo (Object obj) módszer összehasonlítja azt az objektumot, amelyet a metódus meghívására használnak, a megadott objektummal. | Az összehasonlító (Object obj1, Object obj2) módszer összehasonlítja mind a megadott objektumokat, amelyek átadódnak a módszerhez. |
List / Array | Ha összehasonlítani kell az összehasonlítható típusú objektumok listáját, akkor a Gyűjtemény osztály egy módszert ad, azaz a Collection.sort (LST lista). | Ha összehasonlítani kell az összehasonlítható típusú objektumok listáját, akkor a Gyűjtemény osztály megad egy módszert, azaz Collections.sort (lista, összehasonlító). |
Az összehasonlítható meghatározása
Összehasonlítható egy olyan felület, amely a java.lang csomagban elérhető. Egy osztály végrehajtja a Komparátor felületet, hogy objektumát természetes sorrendbe rendezze. Az objektumok természetes sorrendbe rendezése azt jelenti, hogy az objektumokat összehasonlítják az ASCII értékeikkel. Az összehasonlítható felületet megvalósító osztályok a bájt, a karakter, a dupla, az úszó, a hosszú, a rövid, a karakterlánc és az egész szám osztályok. Még a Date and Calander osztály is megvalósítja a Kompatibilis felületet.
A Kompatibilis felület csak egy módszert tartalmaz, az Összehasonlítás (Object obj). Ez a módszer összehasonlítja a módszer meghívásához használt objektumot a paraméterben megadott objektummal. A módszer szintaxisa a következő:
public int CompareTo (Objektum obj);
A CompareTo (Object obj) módszer visszatér 0, ha mind a módszerrel összehasonlított objektum ugyanazt az értéket tartalmazza, akkor visszatér ve érték, ha a meghívó objektum kisebb, mint a megadott objektum, és visszatér + ve érték, ha a meghívó objektum értéke nagyobb, mint a megadott objektum. A Gyűjtemények osztály egy rendezési módszert kínál a lista elemeinek rendezésére. Az összehasonlítható típusú lista (és tömb) elemek rendezhetők a „Collections.sort (Lista lista)” módszerrel.
Az összehasonlító meghatározása
A Comparator egy olyan felület, amely a java.util csomagban elérhető. A komparátor felületet nem valósítják meg azon az osztályon, amelynek objektumait összehasonlítani kell, hanem külön osztály valósítja meg a komparátor felületet úgy, hogy a rendezési logika az objektum minden egyes elemére vonatkozik egy másik osztályban. Az összehasonlító kétféle módszert tartalmaz, az alábbiak szerint:
nyilvános int összehasonlítás (obj1 objektum, obj2 objektum) és logikai egyenlők (obj objektum)
A fenti összehasonlítás () módszer összehasonlítja az obj1 első objektumot a második obj2 objektummal. Az összehasonlító () módszer visszatér 0 Ha mind a módszerrel összehasonlított objektum ugyanazt az értéket tartalmazza, akkor visszatér ve érték, ha az obj1 objektum kisebb, mint az obj2 objektum, és visszatér + ve érték, ha az obj1 objektum értéke nagyobb, mint az obj2 objektum. Az equals () metódusok ellenőrzik, hogy a megadott objektum megegyezik-e a meghívó objektummal. Az equals () módszer visszatér igaz ha mindkét összehasonlított objektum egyenlő, akkor a visszatér hamis. A Gyűjtemények osztály biztosítja a módszert a lista és az összehasonlító típus elemének rendezésére. Az összehasonlító típusok listaelemei a Collections.sort (Lista, Összehasonlító) módszer szerint vannak rendezve.
- A összehasonlítható interfész lehetővé teszi az egyetlen válogatási sorrendet, ami azt jelenti, hogy összehasonlíthatja az objektum csak egy adatelemeit a CompareTo () módszerrel, viszont a komparátor interfész lehetővé teszi több válogatási sorozatot, amely azt jelenti, hogy összehasonlíthatja az objektum több adatelemét.
- A Kompatibilis felületet az az osztály végzi, amelynek objektumait összehasonlítani kell, mivel a rendezési logika ugyanazon osztályon belül van meghatározva. Másrészt, az összehasonlító felületet az az osztály nem valósítja meg, amelynek objektumait összehasonlítani kell, mivel a rendezési logika külön osztályokban van meghatározva, ahol minden osztály meghatározza az osztályozást az objektum egyetlen adatelemén, és ezek a meghatározó osztályok megvalósítják az összehasonlító felületet. .
- Az összehasonlítható felület a java.lang csomagban található, míg az összehasonlító felület a java.util csomagban található.
- Az Összehasonlítható interfész csak egy módszert deklarál, amely az összehasonlítás (Object obj), míg az Összehasonlító felület két módszert deklarál, amelyek összehasonlíthatók (Objektum obj1, Objektum obj2) és egyenlők (Objektum obj).
- Az CompareTo (Object obj) módszer összehasonlítható módon összehasonlítja az objektumhívó módszert a megadott objektummal, amely átadódott a módszerhez, míg az Összehasonlító (Object obj1, Object obj2) módszer összehasonlítja az obj1 objektumokat az obj2-vel, amelyek a módszerhez kerülnek.
- A Gyűjtemények osztály a „Collections.sort (Lista lista)” rendezési módszert biztosítja az Összehasonlítható típusú objektumok rendezéséhez. A Gyűjtemények osztály a Sort.sort (Lista, Komparátor) rendezési módszert biztosítja a Komparátor típusú objektumok rendezéséhez.
Következtetés:
Ha az objektumokat természetes sorrendbe szeretné rendezni, akkor használhatja az összehasonlítható felületet, amellyel objektumokat bármilyen attribútum alapján rendezhet, majd a Komparátor felületet használja.