Logo pl.removalsclassifieds.com

Różnica między porównywalnym a porównawczym (z tabelą)

Spisu treści:

Anonim

Porównywalny i porównawczy to interfejsy java, który jest językiem programowania wysokiego poziomu, służącym do sortowania elementów kolekcji. Java zasadniczo udostępnia te dwa różne interfejsy do sortowania obiektów. Istnieje wiele znaczących różnic między obydwoma interfejsami, które tworzą linię między nimi na podstawie funkcji, którą pełnią.

Porównywalny a porównawczy

Różnica między porównywalnym a komparatorem jest charakterystyczna dla różnych parametrów, na przykład pierwszy interfejs służy do sortowania kolekcji według jednego elementu, podczas gdy późniejszy interfejs służy do sortowania kolekcji według wielu elementów. Pewna klasa musi sama zaimplementować java. Interfejs Lang.Comparable, aby móc efektywnie porównywać jego instancje, natomiast interfejs komparatora jest zewnętrzny w stosunku do typu elementu, który jest porównywany.

Comparable to interfejs, który jest obecny w pakiecie lang języka java, a jego celem jest sortowanie elementów kolekcji za pomocą tylko jednego atrybutu, takiego jak wiek, cena, id, nazwa itp. Jest w stanie porównać się z jakikolwiek inny przedmiot. Obiekt dowolnego typu, czy to lista, czy tablica, może być sortowany.

Komparator to interfejs, który jest obecny w pakiecie util języka java, a jego celem jest sortowanie elementów kolekcji przy użyciu wielu atrybutów naraz. Jest to osobna klasa i jest zewnętrzna w stosunku do typu porównywanego elementu. Klasa collections udostępnia drugą metodę sortowania, która akceptuje komparator jako parametr.

Tabela porównawcza między porównywalnym a porównawczym

Parametry porównania

Porównywalny

Komparator

Rodzaj sortowania Zapewnia pojedynczą sekwencję sortowania. Zapewnia wiele sekwencji sortowania.
Modyfikacja klasy Modyfikuje rzeczywistą klasę. Nie modyfikuje rzeczywistej klasy.
Lokalizacja paczki Jest obecny w pakiecie java-lang. Jest obecny w Javie. do pakietu.
Metody Posiada metodę CompareTo(). Posiada metodę Compare().
Metody sortowania Metoda Collections.sort(List). Metoda Collections.sort(List, Comparator).

Co jest porównywalne?

Jak omówiono powyżej, porównywalny jest interfejs języka programowania java, który jest obecny w pakiecie lang i służy do sortowania elementów kolekcji przy użyciu tylko jednego atrybutu. Porównywalny interfejs zawiera tylko jedną metodę, którą jest CompareTo(). Porównywalny przedmiot może porównywać się z innymi przedmiotami. Aby klasa mogła porównywać instancje, warunkiem koniecznym jest zaimplementowanie przez klasę porównywalnego interfejsu.

Porównywalny interfejs opracowano dla obiektów z naturalnym uporządkowaniem. Innymi słowy, oznacza to, że sortowany przedmiot musi mieć kolejność, w jakiej ma być sortowany. W kategoriach logicznych, porównywalny interfejs porównuje „to” odwołanie z obiektem wymienionym w metodzie. Gdy porównywalny interfejs jest zaimplementowany przez dowolną klasę, obiekt tej klasy można posortować za pomocą Kolekcji. sort() lub tablice. metoda sort().

Obiekty zostaną automatycznie posortowane w naturalnej kolejności zdefiniowanej przez metodę CompareTo. Można porównywać liczby, łańcuchy i wiele innych typów. Ciągi można porównywać za pomocą porównania alfabetycznego. Różne wbudowane klasy java implementują porównywalny interfejs. Najważniejszą rzeczą, o której należy pamiętać, jest to, że porównywalny interfejs może być używany tylko do porównywania obiektów tej samej klasy.

Co to jest komparator?

Interfejs porównawczy języka programowania java jest obecny w pakiecie util i służy do sortowania kolekcji na podstawie wielu atrybutów jednocześnie. Komparator to zupełnie odrębna klasa. Programiści używają do tworzenia wielu klas, które implementują interfejs komparatora w celu porównywania różnych obiektów.

Aby porównać dowolny obiekt kolekcji, pierwszym krokiem jest stworzenie klasy implementującej metodę porównawczą, która zawiera w sobie metodę Compare(). Następnym krokiem jest utworzenie instancji tej klasy implementującej interfejs komparatora. Ostatnim krokiem jest wywołanie metody przeciążonej, którą jest metoda sort(), a następnie przypisanie zarówno listy, jak i instancji klasy, która została utworzona w poprzednim kroku.

Interfejs komparatora porównuje dwa obiekty różnych klas. Interfejs Comparator zawiera dwie metody, którymi są metoda compare() i metoda equals(). Metoda compare() jako parametr do porównania przyjmuje dwa różne obiekty, a metoda equals() określa, czy przekazywany obiekt jest równy komparatorowi wywołującemu. Metoda equals() zwraca wartość logiczną jako dane wyjściowe. True jest zwracane, gdy obiekt przeszedł, a wywołujący obiekt jest obydwoma komparatorami, a jeśli nie, to zwracany jest false.

Metoda Compare() zwraca na wyjściu wartość całkowitą, która wskazuje większy z dwóch przekazanych obiektów.

Główne różnice między porównywalnym a komparatorem

Wniosek

Chociaż oba interfejsy są używane do celów sortowania, oba są całkowicie różne od siebie. Istnieje wiele parametrów lub podstaw, na podstawie których są one używane w różny sposób w elementach listy do różnych celów. Jeśli osoba chce posortować dowolne elementy listy na podstawie pojedynczego elementu kolekcji, można zaimplementować porównywalny interfejs; w przeciwnym razie, jeśli osoba chce posortować dowolne elementy listy na podstawie wielu atrybutów, to ta konkretna kolekcja powinna zostać posortowana implementując interfejs komparatora. Oba interfejsy zostały opracowane z myślą o wykorzystaniu do realizacji odrębnych celów.

Bibliografia

  1. https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
  2. https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
  3. https://ieeexplore.ieee.org/abstract/document/6042862/

Różnica między porównywalnym a porównawczym (z tabelą)