Рецоммендед, 2020

Избор Уредника

Разлика између упоредивих и компаратора у Јави

Цомпарабле анд Цомпаратор оба су генерички интерфејси у Јави који се користе за поређење елемената података објеката. Цомпарабле интерфејс је присутан у јава.ланг пакету и Цомпаратор интерфејс је присутан у јава.утил пакету. Основна разлика између Цомпарабле и Цомпаратор интерфејса је да Цомпарабле интерфејс обезбеђује јединствену секвенцу сортирања, док Цомпаратор интерфејс обезбеђује вишеструке секвенце сортирања. Постоје неке друге разлике између Цомпарабле и Цомпаратор интерфејса које ћемо проучавати у табели за упоређивање.

Цомпарисон Цхарт

Основа за поређењеЦомпараблеЦомпаратор
БасицЦомпарабле интерфејс омогућава само једну секвенцу сортирања.Интерфејс Цомпаратор омогућава вишеструке секвенце сортирања.
ПакетиЦомпарабле интерфејс је присутан у јава.ланг пакету.Интерфејс Цомпаратор је присутан у јава.утил пакету.
МетходсЦомпарабле интерфејс садржи само једну методу
публиц инт цомпареТо (Објецт);
Интерфејс Цомпаратор садржи два метода
публиц инт цомпаре (објекат обј1, објекат обј2)
боолеан једнако (Објецт обј)
ИмплементацијаУпоредиви интерфејс имплементира класа чији објекти треба да се упореде.Интерфејс компаратора се имплементира сперате класом уместо класе чији објекти треба да се упореде.
ПоређењеМетода цомпареТо (Објецт обј) упоређује објекат који се користи за позивање методе са специфицираним прелазима објекта на методу.Метода упоређивања (Објецт обј1, Објецт обј2) упоређује оба наведена објекта која су прослеђена методи.
Лист / АрраиКада се листа објеката типа Цомпарабле мора поредити, класа Цоллецтион обезбеђује методу тј. Цоллецтионс.сорт (Лист лст).Када листу објеката Цомпарабле типа треба упоредити, класа Цоллецтион даје метод тј
Цоллецтионс.сорт (Лист, Цомпаратор).

Дефинитион оф Цомпарабле

Цомпарабле је интерфејс који је доступан у јава.ланг пакету. Класа имплементира Цомпаратор интерфејс, да сортира свој објекат у природном поретку. Објекти се сортирају природним редослиједом, што значи да се објекти успоређују према њиховим АСЦИИ вриједностима. Класе које имплементирају Цомпарабле сучеље су Бите, Цхарацтер, Доубле, Флоат, Лонг, Схорт, Стринг и Интегер класе. Чак и класа Дате и Цаландер такође имплементира Цомпарабле интерфејс.

Цомпарабле интерфејс садржи само један метод који је ЦомпареТо (Објецт обј). Овај метод упоређује објекат који се користи за позивање методе са објектом наведеним у параметру. Синтакса методе је следећа:

 публиц инт цомпареТо (Објецт); 

Метод ЦомпареТо (Објецт обј) враћа 0, када оба објекта у односу на метод садрже исту вриједност, враћа -ве вриједност ако је позивни објект мањи од наведеног објекта и враћа + ве вриједност ако позивни објект има већу вриједност Класа пружа метод сортирања за сортирање елемената листе. Елементи листе (и матрице) типа Цомпарабле могу се сортирати користећи методу “Цоллецтионс.сорт (Лист лст)”.

Дефиниција компаратора

Цомпаратор је интерфејс који је доступан у јава.утил пакету. Компаратор интерфејса није имплементиран на класи чији објекти треба да се упореде, већ одвојена класа имплементира Цомпаратор интерфејс тако да се логика сортирања примењује на сваки елемент података објекта у другој класи. Компаратор садржи две методе:

 публиц инт цомпаре (објекат обј1, објекат обј2) и боолеан једнак (Објецт обј) 

Метода цомпаре () изнад пореди први објекат обј1 са другим објектом обј2. Метод цомпаре () враћа 0 када оба објекта у односу на метод садрже исту вриједност, враћа -ве вриједност ако је објект обј1 мањи од објекта обј2 и враћа + ве вриједност ако објект обј1 има већу вриједност у успоредби до објекта обј2. Методе екуалс () проверавају да ли је специфицирани објекат једнак позивном објекту. Метода екуалс () враћа труе ако су оба упоређена објекта једнака, а враћа фалсе . Класа Класа обезбеђује методу за сортирање елемената листе и компаратора. Елементи листе типова компаратора сортирани су методом Цоллецтионс.сорт (Лист, Цомпаратор).

Кључне разлике између упоредивих и компаратора

  1. Упоредив интерфејс дозвољава један редослед сортирања, што значи да можете упоредити само један елемент података објекта у методу цомпареТо () са друге стране Интерфејс компаратора омогућава вишеструке секвенце сортирања што значи да можете упоредити више елемената података објекта.
  2. Цомпарабле интерфејс имплементира класа чији објекти треба да се упореде јер је логика сортирања дефинисана унутар исте класе. С друге стране, интерфејс Цомпаратор није имплементиран од стране класе чији објекти треба да се упореде јер је логика сортирања дефинисана у одвојеним класама где свака класа дефинише сортирање на једном елементу података објекта и ове дефинишуће класе имплементирају Цомпаратор интерфејс. .
  3. Цомпарабле интерфејс лежи унутар јава.ланг пакета док се Цомпаратор интерфејс налази унутар јава.утил пакета.
  4. Интерфејс Цомпарабле декларише само један метод који је цомпареТо (Објецт обј), док интерфејс Цомпаратор декларише две методе које су, упореди (Објецт обј1, Објецт обј2) и једнако (Објецт обј).
  5. Метода цомпареТо (Објецт обј) у Цомпарабле упоређује објекат позивања методе са наведеним објектом који је прослеђен методи, док упоредни (Објецт обј1, Објецт обј2) метод Цомпаратор упоређује објекте обј1 са обј2 који се прослеђују методи.
  6. Класа Класа обезбеђује метод сортирања „Збирке.сорт (Листа лст)“ да сортира објекте типа „Упоредиво“. Класа класе обезбеђује метод сортирања Цоллецтионс.сорт (Лист, Цомпаратор) за сортирање објеката типа Цомпаратор.

Закључак:

Ако желите да сортирате објекте у природном поретку, онда можете користити сличан интерфејс који желите да сортирате објекте на основу било којег атрибута, а затим се користи Цомпаратор интерфејс.

Top