Rozdiel medzi porovnateľným a porovnávačom v Jave

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 14 Smieť 2024
Anonim
Rozdiel medzi porovnateľným a porovnávačom v Jave - Technológie
Rozdiel medzi porovnateľným a porovnávačom v Jave - Technológie

Obsah

Porovnateľné aj porovnávacie sú všeobecné rozhrania v jazyku Java, ktoré sa používajú na porovnávanie údajových prvkov objektov. Porovnateľné rozhranie je prítomné v balíku java.lang a rozhranie porovnávača je prítomné v balíku java.util. Základný rozdiel medzi porovnateľnými a porovnávacími rozhraniami je v tom, že porovnateľné rozhranie poskytuje jedinú triediacu sekvenciu, zatiaľ čo rozhranie porovnávača poskytuje viacero triediacich sekvencií. Medzi porovnateľným a porovnávacím rozhraním sú ďalšie rozdiely, ktoré budeme študovať v porovnávacom diagrame.


  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieporovnateľnýkomparátor
základné Porovnateľné rozhranie umožňuje iba jednu postupnosť triedenia.Rozhranie porovnávača umožňuje viacero triediacich sekvencií.
balíčky Porovnateľné rozhranie je k dispozícii v balíku java.lang.Rozhranie porovnávača je k dispozícii v balíku java.util.
metódy Porovnateľné rozhranie obsahuje iba jednu metódu
public int CompareTo (Object obj);
Rozhranie porovnávača obsahuje dve metódy
porovnanie verejného int (Object obj1, Object obj2)
boolean sa rovná (Object obj)
uskutočneniePorovnateľné rozhranie je implementované triedou, ktorej objekty sa majú porovnávať.Rozhranie komparátora je implementované radou sperate namiesto triedy, ktorej objekty sa majú porovnávať.
Porovnanie Metóda CompareTo (Object obj) porovnáva objekt, ktorý sa používa na vyvolanie metódy, so špecifikovaným objektom, ktorý prechádza do metódy.Metóda porovnania (Object obj1, Object obj2) porovnáva obidva určené objekty, ktoré sa odovzdávajú do metódy.
List / ArrayKeď sa musí porovnávať zoznam objektov porovnateľného typu, trieda Zbierka poskytuje metódu, t.j. Collections.sort (List lst).Keď sa musí porovnávať zoznam objektov porovnateľného typu, trieda Zbierka poskytuje spôsob, t.
Collections.sort (zoznam, porovnávač).


Definícia porovnateľného

Porovnateľné je rozhranie, ktoré je k dispozícii v balíku java.lang. Trieda implementuje rozhranie komparátora, aby sa jeho objekt zoradil v prirodzenom poradí. Objekty sú usporiadané v prirodzenom poradí, čo znamená, že objekty sú porovnávané podľa ich hodnôt ASCII. Triedy, ktoré implementujú porovnateľné rozhranie, sú triedy Byte, Character, Double, Float, Long, Short, String a Integer. Porovnateľné rozhranie implementuje aj trieda Date a Calander.

Porovnateľné rozhranie obsahuje iba jednu metódu, ktorou je CompareTo (Object obj). Táto metóda porovnáva objekt použitý na vyvolanie metódy s objektom špecifikovaným v parametri. Syntax metódy je takáto:

public int CompareTo (Object obj);

Metóda CompareTo (Object obj) sa vracia 0, keď oba objekty porovnávané metódou obsahujú rovnakú hodnotu, vráti sa -vo hodnota, ak je vyvolávajúci objekt menší ako určený objekt a vráti sa kladnú hodnota, ak má vyvolávajúci objekt vyššiu hodnotu v porovnaní so zadaným objektom. Trieda Zbierka poskytuje metódu triedenia na triedenie prvkov zoznamu. Prvky zoznamu (a poľa) porovnateľného typu je možné triediť pomocou metódy „Collections.sort (List lst)“.


Definícia porovnávača

Porovnávač je rozhranie, ktoré je k dispozícii v balíku java.util. Rozhranie komparátor nie je implementované v triede, ktorej objekty sa majú porovnávať, ale samostatná trieda implementuje rozhranie komparátora, takže triediaca logika sa aplikuje na každý dátový prvok objektu v inej triede. Porovnávač obsahuje tieto dve metódy:

porovnanie int int (Object obj1, Object obj2) a boolean sa rovná (Object obj)

Metóda porovnania () vyššie porovnáva prvý objekt obj1 s druhým objektom obj2. Metóda porovnania () sa vracia 0 ak oba objekty porovnávané metódou obsahujú rovnakú hodnotu, vráti sa -vo hodnota, ak je objekt obj1 menší ako potom objekt obj2 a vráti sa kladnú hodnota, ak má objekt obj1 vyššiu hodnotu v porovnaní s objektom obj2. Metódy equals () kontrolujú, či sa zadaný objekt rovná vyvolávajúcemu objektu. Metóda rovná sa () sa vracia pravdivý ak sú oba porovnávané objekty rovnaké, vráti sa nepravdivý, Trieda Zbierka poskytuje metódu triedenia prvkov zoznamu a typu porovnávača. Prvky zoznamu typov komparátorov sú usporiadané podľa metódy Collections.sort (Zoznam, porovnávač).

  1. Porovnateľné rozhranie umožňuje jednu triediacu postupnosť, čo znamená, že môžete porovnávať iba jeden dátový prvok objektu v metóde CompareTo () na druhej strane. Komparátorové rozhranie umožňuje viacero triediacich sekvencií, čo znamená, že môžete porovnávať viac dátových prvkov objektu.
  2. Porovnateľné rozhranie je implementované triedou, ktorej objekty sa majú porovnávať, pretože triediaca logika je definovaná vnútri rovnakej triedy. Na druhej strane rozhranie porovnávača nie je implementované triedou, ktorej objekty sa majú porovnávať, pretože triediaca logika je definovaná v samostatných triedach, kde každá trieda definuje triedenie na jednom dátovom prvku objektu a tieto definujúce triedy implementujú rozhranie porovnávača. ,
  3. Porovnateľné rozhranie leží vo vnútri balíka java.lang, zatiaľ čo rozhranie porovnávača leží vo vnútri balíka java.util.
  4. Porovnateľné rozhranie deklaruje iba jednu metódu, ktorá je CompareTo (Object obj), zatiaľ čo rozhranie Comparator deklaruje dve metódy, ktoré sú: porovnaj (Object obj1, Object obj2) a rovná sa (Object obj).
  5. Metóda CompareTo (Object obj) v porovnateľnom porovnáva metódu vyvolávajúcu objekt so špecifikovaným objektom odovzdaným do metódy, zatiaľ čo metóda porovnania (Object obj1, Object obj2) porovnávača porovnáva objekty obj1 s obj2, ktoré sa odovzdávajú do metódy.
  6. Trieda Zbierka poskytuje metódu triedenia „Collections.sort (List lst)“ na zoradenie objektov porovnateľného typu. Trieda Zbierka poskytuje metódu triedenia Collections.sort (List, Comparator) na zoradenie objektov typu Comparator.

záver:

Ak chcete zoradiť objekty v prirodzenom usporiadaní, môžete použiť porovnateľné rozhranie, inak chcete zoradiť objekty na základe ľubovoľného atribútu, potom sa použije rozhranie porovnávača.