Rozdíl mezi srovnatelným a srovnávacím v Javě

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 9 Smět 2024
Anonim
Rozdíl mezi srovnatelným a srovnávacím v Javě - Technologie
Rozdíl mezi srovnatelným a srovnávacím v Javě - Technologie

Obsah

Srovnatelné i komparátorové jsou obecná rozhraní v Javě, která se používají k porovnání datových prvků objektů. Srovnatelné rozhraní je k dispozici v balíčku java.lang a rozhraní komparátoru je v balíčku java.util. Základním rozdílem mezi porovnatelnými a srovnávacími rozhraními je to, že porovnatelné rozhraní poskytuje jednu tříděcí sekvenci, zatímco rozhraní komparátoru poskytuje více třídicích sekvencí. Existuje několik dalších rozdílů mezi srovnatelným a porovnávacím rozhraním, které budeme studovat v porovnávacím grafu.


  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníSrovnatelnýKomparátor
Základní Srovnatelné rozhraní umožňuje pouze jednu třídění.Rozhraní komparátoru umožňuje více třídících sekvencí.
Balíčky Srovnatelné rozhraní je v balíčku java.lang.Rozhraní komparátoru je k dispozici v balíčku java.util.
Metody Srovnatelné rozhraní obsahuje pouze jednu metodu
public int CompareTo (Object obj);
Rozhraní komparátoru obsahuje dvě metody
veřejné int srovnání (Object obj1, Object obj2)
boolean se rovná (Object obj)
ImplementaceSrovnatelné rozhraní je implementováno třídou, jejíž objekty mají být porovnány.Rozhraní komparátoru je implementováno sperátovou třídou místo třídy, jejíž objekty mají být porovnány.
Srovnání Metoda CompareTo (Object obj) porovnává objekt, který se používá k vyvolání metody, se zadaným objektem předaným do metody.Metoda Compare (Object obj1, Object obj2) porovnává oba zadané objekty, které jsou předány této metodě.
Seznam / poleKdyž je třeba porovnat seznam objektů srovnatelného typu, třída Collection poskytuje metodu, tj. Collections.sort (List lst).Když je třeba porovnat seznam objektů porovnatelného typu, třída Collection poskytuje metodu, tj.
Collections.sort (Seznam, komparátor).


Definice srovnatelného

Srovnatelné je rozhraní, které je k dispozici v balíčku java.lang. Třída implementuje rozhraní komparátoru, aby se jeho objekt setřídil v přirozeném pořadí. Objekty jsou seřazeny v přirozeném pořadí, což znamená, že objekty jsou porovnány podle jejich hodnot ASCII. Třídy, které implementují srovnatelné rozhraní, jsou třídy Byte, Character, Double, Float, Long, Short, String a Integer. Srovnatelné rozhraní implementuje také třída Date a Calander.

Srovnatelné rozhraní obsahuje pouze jednu metodu, kterou je CompareTo (Object obj). Tato metoda porovnává objekt použitý k vyvolání metody s objektem určeným v parametru. Syntaxe metody je následující:

public int CompareTo (Object obj);

Metoda CompareTo (Object obj) se vrací 0, když oba objekty porovnávané metodou obsahují stejnou hodnotu, vrátí se -ve hodnota, pokud je vyvolávající objekt menší než zadaný objekt a vrátí se + ve hodnota, pokud vyvolávající objekt má vyšší hodnotu ve srovnání se zadaným objektem. Třída Kolekce poskytuje metodu třídění pro třídění prvků seznamu. Prvky seznamu (a pole) porovnatelného typu lze třídit pomocí metody „Collections.sort (List lst)“.


Definice komparátoru

Comparator je rozhraní dostupné v balíčku java.util. Rozhraní komparátor není implementováno ve třídě, jejíž objekty mají být porovnány, místo toho samostatná třída implementuje rozhraní komparátoru, takže logika třídění je aplikována na každý datový prvek objektu v jiné třídě. Komparátor obsahuje následující dvě metody:

veřejné int srovnání (Object obj1, Object obj2) a boolean se rovná (Object obj)

Metoda porovnání () výše porovnává první objekt obj1 s druhým objektem obj2. Metoda porovnání () se vrací 0 když oba objekty porovnávané metodou obsahují stejnou hodnotu, vrátí se -ve hodnota, pokud je objekt obj1 menší než pak objekt obj2 a vrátí se + ve hodnota, pokud má objekt obj1 větší hodnotu ve srovnání s objektem obj2. Metody equals () zkontrolují, zda se zadaný objekt rovná vyvolávajícímu objektu. Metoda equals () se vrací skutečný pokud jsou oba porovnávané objekty stejné, vrátí se Nepravdivé. Třída Kolekce poskytuje metodu třídění prvků seznamu a typu komparátoru. Prvky seznamu typů komparátorů jsou tříděny metodou Collections.sort (List, Comparator).

  1. Srovnatelné rozhraní umožňuje jednu sekvenci řazení, což znamená, že můžete porovnat pouze jeden datový prvek objektu v metodě CompareTo () na druhé straně. Komparátorové rozhraní umožňuje více třídicích sekvencí, což znamená, že můžete porovnat více datových prvků objektu.
  2. Srovnatelné rozhraní je implementováno třídou, jejíž objekty mají být porovnány, protože třídicí logika je definována uvnitř stejné třídy. Na druhé straně rozhraní komparátoru není implementováno třídou, jejíž objekty mají být porovnány, protože logika třídění je definována v samostatných třídách, kde každá třída definuje třídění na jednom datovém prvku objektu a tyto definující třídy implementují rozhraní komparátoru. .
  3. Rozhraní porovnatelné leží uvnitř balíčku java.lang, zatímco rozhraní komparátoru leží uvnitř balíčku java.util.
  4. Rozhraní porovnatelné deklaruje pouze jednu metodu, která je CompareTo (Object obj), zatímco rozhraní komparátoru deklaruje dvě metody, které jsou: porovnání (Object obj1, Object obj2) a rovná se (Object obj).
  5. Metoda CompareTo (Object obj) v porovnatelném porovnává vyvolávající metodu s určeným objektem předávaným do metody, zatímco metoda porovnávání (Object obj1, Object obj2) v komparátoru porovnává objekty obj1 s obj2, které jsou předávány do metody.
  6. Třída Kolekce poskytuje metodu třídění „Collections.sort (List lst)“ pro třídění objektů typu Porovnatelný. Třída Kolekce poskytuje metodu třídění Collections.sort (List, Comparator) k třídění objektů typu Comparator.

Závěr:

Pokud chcete třídit objekty v přirozeném uspořádání, můžete použít srovnatelné rozhraní, jinak chcete třídit objekty na základě libovolného atributu, pak se použije rozhraní komparátoru.