Különbség az összehasonlítható és az összehasonlító Java-ban

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 12 Lehet 2024
Anonim
Különbség az összehasonlítható és az összehasonlító Java-ban - Technológia
Különbség az összehasonlítható és az összehasonlító Java-ban - Technológia

Tartalom

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.


  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaHasonlóö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ásA 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 / ArrayHa ö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.

  1. 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.
  2. 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. .
  3. Az összehasonlítható felület a java.lang csomagban található, míg az összehasonlító felület a java.util csomagban található.
  4. 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).
  5. 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.
  6. 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.