Porównywalny a porównawczy: różnica między porównywalnym a porównawczym

Opublikowany: 2020-12-30

Spis treści

Porównywalny i porównawczy: przegląd

Porównywalny i porównawczy to interfejsy w języku programowania Java służące do określania zachowania, w jakim klasy będą implementowane. Podczas gdy Comparable jest używany na obiektach, które są naturalnie uporządkowane, interfejs Comparator implementuje sortowanie, biorąc pod uwagę atrybuty obiektu. Co więcej, sortowanie Comparator uwzględnia obiekty dwóch różnych klas, a Comparable porównuje obiekty przy użyciu odniesienia „tego”.

Teraz, gdy ustaliliśmy podstawową zasadę działania obu interfejsów, przyjrzyjmy się różnicom między nimi.

Różnica między porównywalnym a porównawczym

Metoda sortowania

Porównywalny

Do sortowania używa funkcji CompareTo(). Jest to jedyna metoda obecna w interfejsie sortowania Comparable.

CompareTo(Object O) przyjmuje jako argument obiekt i porównuje go z innym tego samego typu. Jeśli obiekt jest ciągiem, możesz go porównać tylko z innym obiektem tego samego typu. To samo dotyczy obiektu int i tak dalej. CompareTo() zwraca ujemną, dodatnią lub zerową wartość całkowitą na podstawie wyniku sortowania.

Komparator

Istnieją dwie metody sortowania elementów w programie Comparator: Compare() i equals().

Compare(Object O1, Object O2) uwzględnia dwa argumenty jako dane wejściowe i zapewnia żądane dane wyjściowe. Zwraca liczbę całkowitą, aby wskazać, jak pierwszy argument współgra z drugim.

  • Jeśli O1 jest mniejsze niż O2, zwraca ujemną liczbę całkowitą.
  • Jeśli O1 jest większe niż O2, zwróci dodatnią liczbę całkowitą.
  • Jeśli O1 jest równe O2, zwraca 0.

equals(Object) uwzględnia obiekt jako dane wejściowe i porównuje go z komparatorem. Zwraca True, jeśli Object jest równy komparatorowi. Zapewnia również, że kolejność się nie zmieni.

Wykorzystany pakiet

Porównywalny

Istnieje w pakiecie Java.lang Java.

Komparator

Istnieje w pakiecie java.util Java.

Zamawianie i klasa

Porównywalny

  • Uwzględnia przedmioty, które są uporządkowane w naturalny sposób, czyli mają tendencję do sortowania się. Na przykład porządek alfabetyczny lub numeryczny w przypadku nazwisk, ceny, wynagrodzenia, numeru rolki, wieku itp.
  • Ważne jest również, aby oba obiekty należały do ​​tej samej klasy.
  • Porównywalny interfejs porównuje „to” odwołanie z określonym obiektem.
  • Sortowanie przy użyciu Comparable wpływa na rzeczywistą klasę.

Komparator

  • Ten interfejs służy przede wszystkim do sortowania atrybutów określonych obiektów. Nie muszą mieć naturalnego porządku; można go dostosować.
  • Logika sortowania musi znajdować się w oddzielnych klasach, aby porównać atrybuty obiektów z dwóch rozważanych klas.
  • Rzeczywista klasa pozostaje nienaruszona.

Sekwencje i kolekcje

Porównywalny

  • Obsługuje tylko pojedyncze sekwencje sortowania. Oznacza to, że możesz wziąć pod uwagę tylko jeden element lub atrybut kolekcji, taki jak numer rzutu, wiek lub ranga.
  • Do sortowania kolekcji obiektów, tablic lub listy możesz użyć kolekcji. sort (Lista) lub Tablice. sortuj(Lista). To przywróci przedmioty w ich naturalnym porządku .

Komparator

  • Obsługuje wiele sekwencji sortowania. Oznacza to, że możesz wziąć pod uwagę wiele elementów lub atrybutów kolekcji, takich jak numer rzutu, wiek i ranga.
  • Do sortowania kolekcji można użyć collection.sort(lista, comparator).

Oto podsumowanie wszystkich różnic między produktem porównawczym a porównawczym

Porównywalny Komparator
Pakiet
Java.lang Java.util
Metoda sortowania
porównać do() porównywać()
Zamawianie
Naturalne porządkowanie Zamawianie niestandardowe
Rodzaj obiektu
Porównywane obiekty muszą być tego samego typu Uwzględniane są obiekty różnych klas
Wpływ na klasę
Klasa zostaje zmodyfikowana Nie wpływa na zajęcia
Sekwencja sortowania
Pojedyncza sekwencja sortowania Sekwencja wielokrotnego sortowania

Zapisz się na kursy rozwoju oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

O czym należy pamiętać podczas korzystania z porównania i komparatora w Javie

  • Porównywalny interfejs to ten, który należy wybrać, jeśli sprzedajesz w celu przeprowadzenia standardowego porównania dla określonej klasy.
  • Komparator pozwala na użycie lambdy.
  • Możesz użyć metody CompareTo(), aby zaimplementować zarówno Comparator, jak i Comparable.
  • Interfejs porównawczy jest zalecany, jeśli szukasz elastyczności w sortowaniu

Wniosek

W większości rzeczywistych scenariuszy, kiedy sortujemy, zwykle mamy na myśli różne parametry. Ponadto, ponieważ użycie porównywalnych wyników w domyślnym sortowaniu i nie może być zmieniane dynamicznie, jest mniej praktyczne niż Komparator, który pozwala dostosować i wybrać różne metody sortowania, aby spełnić Twoje wymagania. Już z tego powodu Comparator znajduje bardziej praktyczne zastosowania niż Comparable.

Przeczytaj: Ciekawy projekt java do sprawdzenia

Jeśli chcesz dowiedzieć się więcej o Javie, tworzeniu pełnego stosu, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie programowania pełnego stosu, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów, i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Czym są interfejsy w językach programowania?

Czy nauka Javy jest łatwa?

Java wprowadza paradygmat programowania zorientowanego obiektowo, pozwalając nawet najbardziej niedoświadczonym programistom Java myśleć i tworzyć programy jak doświadczony programista. Java wywodzi się z języków programowania C i C++, które są również szeroko stosowane dzisiaj. Chociaż Java ma pewne podobieństwa do C i C++ pod względem funkcjonalności, stała się językiem o wiele bardziej przyjaznym dla użytkownika. Ponieważ programowanie obiektowe ułatwia konserwację i zmianę istniejącego kodu, nawet początkujący programiści mogą rozpocząć pracę nad projektami korporacyjnymi. Nowi programiści rzadziej napotykają nieprzewidziane błędy w czasie wykonywania, ponieważ Java jest weryfikowana pod kątem błędów przed wykonaniem. Java zmusza programistów do poprawnego określania wszystkich elementów kodu, zmniejszając ryzyko błędów w miarę rozwoju aplikacji.

Dlaczego sortowanie jest konieczne w Javie?

Sortowanie odnosi się do zestawu technik zmiany rozmieszczenia elementów w tablicy w taki sposób, że wszystkie są w porządku rosnącym lub malejącym. Przyzwoity algorytm sortowania musi również zapewniać, że elementy o tej samej wartości pozostaną w posortowanej tablicy w tej samej kolejności. Sortowanie jest wymagane do dogłębnego zrozumienia struktur danych i algorytmów. Java jako język programowania jest wyjątkowo wszechstronna i może być wykorzystywana do implementacji wielu algorytmów sortujących. Większość tych algorytmów jest dość wszechstronna i może być zaimplementowana zarówno w sposób rekurencyjny, jak i iteracyjny.