Шта је упоредиво у Јави?
Упоредив у Јави је објекат који се упоређује са другим објектом. Помаже у сортирању листе прилагођених објеката. Јава.ланг.Цомпарабле интерфејс треба да имплементира класа како би упоредио своје инстанце. Низ објеката који имплементирају упоредиви интерфејс аутоматски се сортира методама Арраис.сорт и Цоллецтионс.сорт.
У овом упутству за упоређивање и упоредиво у Јави научићете:
- Шта је упоредиво у Јави?
- Шта је упоређивач у Јави?
- Метода коришћена у упоредивом:
- Метода коришћена у упоређивачу:
- Разлика између упоредивог и упоредног у Јава-и
- Најбоље праксе током употребе упоређивача и упоредивог у Јави
Шта је упоређивач у Јави?
Компаратор у Јави је објекат за упоређивање различитих објеката различитих класа. Упоредни интерфејс у Јави се такође користи за уређивање објеката кориснички дефинисаних класа. Укључује две важне методе интерфејса за упоређивање познате као упоређивање (Објецт обј1, Објецт обј2) и једнако (Објецт елемент).
КЉУЧНЕ РАЗЛИКЕ:
- Цомпарабле пружа методу цомпареТо () за сортирање елемената у Јави, док Цомпаратор пружа методу цомпаре () за сортирање елемената у Јави.
- Упоредиви интерфејс је присутан у пакету јава.ланг, док је интерфејс за упоређивање присутан у пакету јава.утил.
- Упоредиво пружа једну секвенцу сортирања, док Компаратор пружа више секвенци сортирања.
- Упоредиво утиче на оригиналну класу, док упоређивач не утиче на оригиналну класу.
Метода коришћена у упоредивом:
Следи важна метода која се користи у упоредивом интерфејсу:
У поређењу са():
Метода ЦомпареТо () се користи за природно сортирање низа. Значење природног сортирања је редослед сортирања који се примењује на објекат, нпр. Нумерички редослед за сортирање целих бројева, абецедни редослед за низ итд.
Синтакса методе ЦомпареТо () је следећа:
int compareTo(T obj)
У горњој синтакси, Т означава врсту објеката које ћете упоређивати.
Метода ЦомпареТо () упоређује објекат са Т обј.
Излаз:
- Враћа 0 ако су вредности једнаке.
- Ако објекат има мању вредност, овај метод враћа негативну вредност.
- Ако објекат има већу вредност, враћа позитивну вредност.
Пример методе ЦомпареТо ():
Следећи пример упоредивог програма Јава приказује поређење два знака, „а“ и „б“. Карактер "а" долази испред "б" по абецеди.
Према томе, излаз је -1. Знак "б" долази иза "а" по абецеди. Отуда је излаз 1. Знак "а" и "б" су еквивалентни. Отуда је излаз 0.
public class Sample_String {public static void main(String[] args) {String str_Sample = "a";System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));str_Sample = "b";System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));str_Sample = "b";System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));}}
Оутпут
Compare To 'a' b is : -1Compare To 'b' a is : 1Compare To 'b' b is : 0
Метода коришћена у упоређивачу:
Следе важне методе које се користе у интерфејсу за упоређивање:
Упоредити():
Цомпаре () вам омогућава наручивање објеката. Да бисте то урадили, морате створити класу која имплементира интерфејс за упоређивање. После овога, морате да замените његову методу упоређивања.
Синтакса методе цомпаре () је следећа:
compare(Object obj1, Object obj2)
У горњој синтакси, обј1 и обј2 су два објекта која морате упоредити методом цомпаре ().
Излаз:
- Враћа негативан цео број ако је први аргумент мањи од другог.
- Враћа нулу ако су први и други аргумент једнаки.
- Ова метода може вратити позитиван цијели број, у случају да је први аргумент већи од другог.
Морате осигурати да је веза транзитивна. На пример, ((упореди (а, б)> 0) && (упореди (б, ц)> 0)) што подразумева упореди (а, ц)> 0.
Пример методе упоређивања:
У доњем програму примера упоредног програма Јава постоји 6 променљивих. "к", "и", "п", "к", "р" и "с". Излаз је -1 као вредност „к“, 20 је мања од вредности „и“, 30. Излаз је 0, јер је вредност „п“, 40 једнака вредности „к“, 40 .
import java.lang.Integer;public class example {public static void main(String args[]){int x = 20;int y = 30;// as 10 less than 20,// Output will be a value less than zeroSystem.out.println(Integer.compare(x, y));int p = 40;int q = 40;// as 30 equals 30,// Output will be zeroSystem.out.println(Integer.compare(p, q));int r = 20;int s = 7;// as 15 is greater than 8,// Output will be a value greater than zeroSystem.out.println(Integer.compare(r, s));}}
Излаз:
-101
Једнако ():
Екуалс () проверава да ли је објект броја једнак објекту који се прослеђује као аргумент или не.
Синтакса методе екуалс () је следећа:
јавна логичка вредност једнако (објекат о)
Ова метода узима два параметра 1) било који објекат 2) повратну вредност. Враћа труе ако прослеђени аргумент није нулл и ако је објекат сличног типа који има исту нумеричку вредност.
Пример методе једнаких:
У доњем примеру упоређујемо четири променљиве међусобно. Три променљиве су целог броја типа, а једна кратког типа. Први резултат је нетачан јер вредност п, која је 5, није једнака вредности к, која је 20.
Други резултат је тачан јер је вредност променљиве п и р иста, што је 5. На крају, излаз је нетачан, јер променљиве п и с имају различите додељене вредности.
public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}
Оутпут
falsetruefalse
Разлика између упоредивог и упоредног у Јава-и

Разлика између упоредивог и упоредног у Јава-и
Ево главних разлика између Јава Цомпарабле и Цомпаратор:
Упоредиво | Компаратор |
Цомпарабле нуди методу цомпареТо () за сортирање елемената у Јави. | Компаратор пружа методу цомпаре () за сортирање елемената у Јави. |
Упоредив интерфејс је присутан у пакету јава.ланг. | Интерфејс упоређивача присутан је у пакету јава.утил. |
Логика сортирања мора бити у истој класи чији ћете објекат сортирати. | Логика сортирања треба да буде у посебној класи за писање различитог сортирања на основу различитих атрибута објеката. |
Класа чије објекте желите да сортирате мора да примени упоредиви интерфејс. | Класа, чији објекти желите да сортирате, не треба да имплементира интерфејс за упоређивање. |
Пружа појединачне секвенце сортирања. | Пружа више секвенци сортирања. |
Овом методом се подаци могу сортирати према природном редоследу сортирања. | Ова метода сортира податке према прилагођеном редоследу сортирања. |
Утиче на оригиналну класу. тј. стварна класа је промењена. | То не утиче на оригиналну класу, тј. Стварна класа није промењена. |
У АПИ их често примењују : календар, класе омотача, датум и низ. | Примењен је за сортирање инстанци независних класа. |
Све класе омотача и класа Стринг имплементирају упоредиви интерфејс. | Једине имплементиране класе упоредника су Цоллатор и РулеБаседЦолатор. |
Најбоље праксе током употребе упоређивача и упоредивог у Јави
- Користите упоредиви интерфејс када је поређење стандардно за одређену класу.
- Ламбде можете користити са упоређивачем.
- Многе основне класе доступне у имплементирају упоредиви интерфејс.
- Могуће је користити ТрееСет и ТрееМап или док сортирате Сет или Мап.
- Метода цомпареТо () ради са упоређивачем као и упоредива.
- Користите интерфејс за упоређивање само када вам је <потребна већа флексибилност.
- Метода цомпареТо () вратиће позитиван цео број ако је први објекат већи од другог, негативан ако је нижи и нула ако су оба иста.