Упоредиви и компаратор су оба интерфејса Јаве, програмског језика високог нивоа који се користи за сортирање елемената колекције. Јава у основи пружа ова два различита интерфејса за сортирање објеката.
Постоје многе значајне разлике између оба интерфејса која стварају линију између њих на основу функције коју обављају.
Кључне Такеаваис
- Упоредиви је интерфејс за природно сређивање објеката; Цомпаратор је екстерни услужни програм за упоређивање објеката.
- Имплементација Цомпарабле захтева модификацију класе објеката који се пореде; Компаратор се може користити без модификације оригиналне класе.
- Цомпарабле намеће једну, подразумевану методу сортирања; Компаратор омогућава вишеструке, прилагодљиве опције сортирања.
Цомпарабле вс Цомпаратор
Цомпарабле је интерфејс у Јави који дефинише цомпареТо метод и користи се за поређење природно уређених објеката. Упоређује објекте користећи референцу „ово“. Интерфејс компаратора сортира објекте узимајући у обзир њихове атрибуте. Он разматра објекте две различите класе.
Упоредиви је интерфејс који је присутан у ланг пакету Јава језика, а његова сврха је да сортира елементе колекције користећи само један атрибут као што су старост, цена, ид, име итд.
Способан је да упореди себе са било којим другим објектом. Објект било ког типа, било листа или низ, може се сортирати.
Компаратор је интерфејс који је присутан у утил пакету Јава језика, а његова сврха је да сортира елементе колекције користећи више атрибута одједном.
То је посебна класа и екстерна је у односу на тип елемента који се пореди. Класа цоллецтионс обезбеђује други метод сортирања који прихвата компаратор као параметар.
Упоредна табела
Параметри поређења | Упоредиво | Компаратор |
---|---|---|
Врста сортирања | Обезбеђује једну секвенцу сортирања. | Обезбеђује више секвенци сортирања. |
Модификација класе | Модификује стварну класу. | То не мења стварну класу. |
Локација пакета | Присутан је у пакету јава—ланг. | Присутан је у Јави. утил пакет. |
Методе | Има метод цомпареТо(). | Има методу цомпаре(). |
Методе сортирања | Цоллецтионс.сорт(Лист) метода. | Цоллецтионс.сорт(Листа,Цомпаратор) метода. |
Шта је упоредиво?
Као што је горе објашњено, упоредиви је интерфејс Јава програмског језика који је присутан у пакету ланг и користи се за сортирање елемената колекције коришћењем само једног атрибута. Упоредиви интерфејс садржи само један метод који је цомпареТо().
Упоредиви објекат је способан да се пореди са другим објектима. Да би класа упоредила инстанце, неопходно је да класа имплементира Цомпарабле интерфејс.
Развијен је упоредив интерфејс за објекте са природним редоследом. Другим речима, ово значи да објекат који треба да се сортира мора имати редослед којим се сортира.
У логичком смислу, упоредиви интерфејс пореди „ову“ референцу са објектом који се помиње у методи. Када било која класа имплементира Цомпарабле интерфејс, објекат те класе може се сортирати коришћењем колекција. сорт() или низове. сорт() метода.
Објекти ће аутоматски бити сортирани природним редоследом који је дефинисан методом ЦомпареТо. Бројеви, низови и многи други типови се могу поредити. Стрингови се могу поредити коришћењем поређења по абецедном реду.
Различите уграђене класе Јаве имплементирају упоредиви интерфејс. Најважнија ствар коју треба имати на уму је да се упоредиви интерфејс може користити само за упоређивање објеката исте класе.
Шта је компаратор?
Интерфејс за поређење програмског језика Јава је присутан у пакету утил и користи се за сортирање колекције на основу више атрибута одједном.
Компаратор је потпуно засебна класа. Програмери користе да креирају више класа које имплементирају интерфејс компаратора у сврху поређења различитих објеката.
Да бисте упоредили било који објекат колекције, први корак је креирање класе која имплементира метод компаратора, који у себи има метод цомпаре(). Следећи корак је да направите инстанцу те класе која имплементира интерфејс компаратора.
Последњи корак је позивање преоптерећене методе, која је метода сорт(), а затим додељивање листе и инстанце класе која је креирана у претходном кораку.
Интерфејс компаратора пореди два објекта различитих класа. Интерфејс Цомпаратор има две методе у себи, а то су цомпаре() и екуалс().
Цомпаре() метода узима два различита објекта као свој параметар за поређење, а екуалс() метода одређује да ли је објекат Усвојено једнака компаратору који позива.
Метода екуалс() враћа логичку вредност као свој излаз. Тачно се враћа када објекат прође, а објекат који позива је оба компаратора, а ако није, онда се враћа нетачно.
Цомпаре() метода враћа целобројну вредност у свом излазу, што указује на већи од два прослеђена објекта.
Главне разлике између упоредивог и компаратора
- Интерфејс Цомпарабле обезбеђује једно сортирање низ у којој се колекција може сортирати кроз један елемент као што је ид, име или било који специфичан параметар, док интерфејс компаратора пружа вишеструку секвенцу сортирања у којој се колекција може сортирати кроз више елемената као што су ид, име или било који други параметар .
- Упоредиви интерфејс утиче на оригиналну класу јер модификује стварну класу, док, с друге стране, интерфејс компаратора ни на који начин не утиче на оригиналну класу, пошто стварна класа остаје иста без икаквих модификација.
- Упоредиви интерфејс је присутан у ланг пакету Јаве, док је интерфејс компаратор присутан у утил пакету Јаве.
- У упоредивом интерфејсу цомпареТо() се користи за сортирање елемената, док се у упоредном интерфејсу цомпаре() користи за сортирање елемената.
- Елементи листе упоредивих типова колекције могу се сортирати коришћењем колекција. Сорт (Листа) метод, док са друге стране, елементи листе типа компаратора колекције могу се сортирати коришћењем Цоллецтионс. Метода сортирања (Листа, Компаратор).
- https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
- https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
- https://ieeexplore.ieee.org/abstract/document/6042862/
Последње ажурирање: 17. јул 2023
Сандееп Бхандари је дипломирани инжењер рачунарства на Универзитету Тхапар (2006). Има 20 година искуства у области технологије. Он има велико интересовање за различите техничке области, укључујући системе база података, рачунарске мреже и програмирање. Више о њему можете прочитати на његовом био паге.
Кључне разлике које сте истакли између интерфејса Цомпарабле и Цомпаратор су веома информативне и корисне у разумевању разлика између та два. Ваше објашњење како интерфејс Цомпарабле аутоматски сортира објекте природним редоследом дефинисаним методом цомпареТо је посебно просветљујуће.
Хвала вам што сте детаљно објаснили логику која стоји иза интерфејса Цомпарабле и Цомпаратор. Ове информације ће сигурно помоћи у ефикаснијој примени механизама за сортирање.
Слажем се, чланак пружа јасно и сажето поређење упоредивих и упоредних интерфејса, што олакшава разумевање њихових јединствених функција и случајева употребе.
Преглед интерфејса Цомпарабле и Цомпаратор и њихових посебних карактеристика је веома поучан. Ваше свеобухватно објашњење сврхе и употребе ових интерфејса ће несумњиво помоћи програмерима у доношењу информисаних дизајнерских одлука.
Ценим детаљно поређење које је овде представљено. То је драгоцена информација за програмере који желе да побољшају своје разумевање техника сортирања и поређења у Јави.