Kas ir salīdzināms Java?
Java salīdzināms ir objekts, lai salīdzinātu sevi ar citu objektu. Tas palīdz kārtot pielāgoto objektu sarakstu. Klasei jāievieš java.lang.Comparable saskarne, lai salīdzinātu tās gadījumus. Objektu masīvs, kas ievieš salīdzināmu saskarni, tiek automātiski sakārtots ar Arrays.sort un Collections.sort metodēm.
Šajā apmācībā Comparator vs Comparable Java jūs uzzināsiet:
- Kas ir salīdzināms Java?
- Kas ir Java salīdzinātājs?
- Salīdzināmā metode:
- Komparatorā izmantotā metode:
- Atšķirība starp Java salīdzināmo un salīdzināmo
- Labākā prakse, lietojot Comparator un Comparable Java
Kas ir Java salīdzinātājs?
Java salīdzinātājs ir objekts dažādu klašu dažādu objektu salīdzināšanai. Komparatora saskarne Java tiek izmantota arī lietotāja definētu klašu objektu sakārtošanai. Tas ietver divas svarīgas salīdzinājuma saskarnes metodes, kas pazīstamas kā salīdzināt (Object obj1, Object obj2) un vienādas (Object elements).
GALVENĀS ATŠĶIRĪBAS:
- Comparable nodrošina metodi salīdzināt (), lai kārtotu elementus Java, savukārt Comparator nodrošina metodi ((), lai kārtotu elementus Java.
- Java.lang pakotnē ir salīdzināms interfeiss, savukārt java.util paketē ir Comparator interfeiss.
- Salīdzināmā nodrošina vienu šķirošanas secību, savukārt Comparator - vairākas šķirošanas secības.
- Salīdzināmā ietekmē sākotnējo klasi, savukārt salīdzinātājs neietekmē sākotnējo klasi.
Salīdzināmā metode:
Šī ir svarīga metode, kas izmantota salīdzināmajā saskarnē:
Salīdzinot ar():
Lai veiktu virknes dabisko šķirošanu, tiek izmantota metode CompareTo (). Dabiskās šķirošanas nozīme ir kārtošanas secība, kas attiecas uz objektu, piemēram, skaitliskā secība veselu skaitļu kārtošanai, alfabētiskā secība virknei utt.
Metodes CompareTo () sintakse ir šāda:
int compareTo(T obj)
Iepriekš minētajā sintaksē T apzīmē objektu tipu, kurus salīdzināt.
Metode CompareTo () objektu salīdzina ar T obj.
Izeja:
- Tas atgriež 0, ja vērtības ir vienādas.
- Gadījumā, ja objektam ir mazāka vērtība, šī metode atgriež negatīvu vērtību.
- Ja objektam ir augstāka vērtība, tas atgriež pozitīvu vērtību.
Metodes piemērs CompareTo ():
Nākamajā Java salīdzināmā piemēra programmā parādīts divu rakstzīmju "a" un "b" salīdzinājums. Raksts "a" ir alfabētiski pirms "b".
Tāpēc izeja ir -1. Raksts "b" ir aiz alfabēta pēc "a". Tādējādi izeja ir 1. Rakstzīmes "a" un "b" ir vienādas. Tādējādi izeja ir 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"));}}
Rezultāts
Compare To 'a' b is : -1Compare To 'b' a is : 1Compare To 'b' b is : 0
Komparatorā izmantotā metode:
Svarīgas salīdzināšanas saskarnē izmantotās metodes ir šādas:
Salīdzināt():
Salīdzināt () ļauj pasūtīt objektus. Lai to izdarītu, jums jāizveido klase, kas ievieš salīdzinošo saskarni. Pēc tam jums jāignorē tā salīdzināšanas metode.
Metodes salīdzināt sintakse ir šāda:
compare(Object obj1, Object obj2)
Iepriekš minētajā sintaksē obj1 un obj2 ir divi objekti, kas jums jāsalīdzina, izmantojot salīdzināšanas () metodi.
Izeja:
- Tas atgriež negatīvu veselu skaitli, ja pirmais arguments ir mazāks par otro.
- Atgriež nulli, ja pirmais un otrais arguments ir vienādi.
- Šī metode var atgriezt pozitīvu veselu skaitli, ja pirmais arguments ir lielāks par otro.
Jums jāpārliecinās, ka attiecība ir tranzitīva. Piemēram, ((salīdzināt (a, b)> 0) && (salīdzināt (b, c)> 0)), kas nozīmē salīdzināt (a, c)> 0.
Salīdzināt metodes piemēru:
Zemāk esošajā Java salīdzinošā piemēra programmā ir 6 mainīgie. "x", "y", "p", "q", "r" un "s". Rezultāts ir -1, jo "x" vērtība 20 ir mazāka par "y", 30. Rezultāts ir 0, jo "p", 40 vērtība ir vienāda ar "q", 40 vērtību .
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));}}
Izeja:
-101
Vienāds ():
Vienāds () pārbauda, vai skaitļa objekts ir vienāds ar objektu, kas tiek nodots kā arguments vai nē.
Metodes equals () sintakse ir šāda:
publiskais būla skaitlis ir vienāds (objekts o)
Šī metode prasa divus parametrus: 1) jebkuru objektu; 2) atgriešanās vērtību. Tas atgriež vērtību true, ja nodotais arguments nav nulle un ir līdzīga tipa objekts ar tādu pašu skaitlisko vērtību.
Vienādas metodes piemērs:
Zemāk sniegtajā piemērā mēs salīdzinām četrus mainīgos lielumus savā starpā. Trīs mainīgie ir tipa vesels skaitlis un viens - īss. Pirmais rezultāts ir kļūdains, jo p vērtība, kas ir 5, nav vienāda ar q vērtību, kas ir 20.
Otrais rezultāts ir patiess, jo mainīgo p un r vērtība ir vienāda, kas ir 5. Visbeidzot, izeja ir nepatiesa, jo mainīgajiem p un s ir dažādas piešķirtās vērtības.
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));}}
Rezultāts
falsetruefalse
Atšķirība starp Java salīdzināmo un salīdzināmo

Atšķirība starp Java salīdzināmo un salīdzināmo
Šeit ir galvenās atšķirības starp Java Comparable un Comparator:
Salīdzināms | Salīdzinātājs |
Salīdzināmā nodrošina metodi salīdzināt (), lai kārtotu elementus Java. | Comparator nodrošina salīdzināšanas () metodi elementu kārtošanai Java. |
Java.lang pakotnē ir salīdzināms interfeiss. | Salīdzinātāja interfeiss atrodas java.util paketē. |
Šķirošanas loģikai jābūt tajā pašā klasē, kuras objektu jūs kārtojat. | Šķirošanas loģikai jābūt atsevišķā klasē, lai rakstītu atšķirīgu šķirošanu, pamatojoties uz dažādiem objektu atribūtiem. |
Klasei, kuras objektus vēlaties kārtot, jāievieš salīdzināma saskarne. | Klasei, kuras objektus vēlaties kārtot, nav jāievieš salīdzinošā saskarne. |
Tas nodrošina vienas šķirošanas secības. | Tas nodrošina vairākas šķirošanas secības. |
Ar šo metodi datus var kārtot pēc dabiskās kārtošanas kārtības. | Šī metode datus kārto atbilstoši pielāgotajai kārtošanas kārtībai. |
Tas ietekmē sākotnējo klasi. ti, tiek mainīta faktiskā klase. | Tas neietekmē sākotnējo klasi, ti, faktiskā klase netiek mainīta. |
API bieži ievieš : Kalendārs, Iesaiņotāja klases, Datums un String. | Tas tiek ieviests, lai kārtotu trešo pušu klases gadījumus. |
Visas iesaiņošanas klases un virkņu klase ievieš salīdzināmu saskarni. | Vienīgās ieviestās Comparator klases ir Collator un RuleBasedColator. |
Labākā prakse, lietojot Comparator un Comparable Java
- Izmantojiet salīdzināmu saskarni, ja salīdzinājums ir standarta noteiktai klasei.
- Jūs varat izmantot lambdas ar salīdzinājumu.
- Daudzas pamata klases, kas pieejamas, ievieš salīdzināmu saskarni.
- Ir iespējams izmantot TreeSet un TreeMap, vai arī kārtojot Set vai Map.
- Metode salīdzināt () darbojas gan ar salīdzinājumu, gan ar salīdzināmu.
- Izmantojiet salīdzināšanas saskarni tikai tad, kad
- Metode salīdzināt () atgriezīs pozitīvu veselu skaitli, ja pirmais objekts ir lielāks par otru, negatīvs, ja tas ir mazāks, un nulle, ja abi ir vienādi.