Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp salīdzināmu un salīdzināmu Java

Salīdzināmi un salīdzināmi abi ir vispārējās saskarnes Java, ko izmanto, lai salīdzinātu objektu datu elementus. Comparable interfeiss atrodas java.lang paketē un Comparator interfeiss atrodas java.util paketē. Galvenā atšķirība starp salīdzināmām un salīdzināmām saskarnēm ir tā, ka salīdzināmā saskarne nodrošina vienotu šķirošanas secību, kamēr Comparator interfeiss nodrošina vairākas šķirošanas sekvences. Ir dažas citas atšķirības starp salīdzināmo un salīdzināmo interfeisu, ko mēs pētīsim salīdzināšanas diagrammā.

Salīdzinājuma diagramma

Salīdzinājuma pamatsSalīdzināmsComparator
PamataSalīdzināmā saskarne ļauj veikt tikai vienu šķirošanas secību.Comparator interfeiss ļauj veikt vairākas šķirošanas secības.
IepakojumiSalīdzinošā saskarne ir iekļauta java.lang paketē.Comparator interfeiss ir iekļauts java.util paketē.
MetodesSalīdzināmā saskarne satur tikai vienu metodi
publiska int salīdzinātTo (Object obj);
Comparator interfeisā ir divas metodes
publiski pieejama (Object obj1, Object obj2)
būla vienāds (Object obj)
ĪstenošanaSalīdzināmu interfeisu īsteno klase, kuras objekti jāsalīdzina.Comparator interfeiss tiek ieviests ar lokalizētu klasi, nevis klasi, kuras objekti ir jāsalīdzina.
SalīdzinājumsSalīdzināšanas metode (Object obj) salīdzina objektu, ko izmanto, lai izmantotu metodi ar norādīto objektu.Salīdzināšanas (Object obj1, Object obj2) metode salīdzina abus norādītos objektus, kas tiek nodoti metodei.
Saraksts / sarakstsJa salīdzināmā tipa objekta saraksts ir jāsalīdzina, kolekcijas klase nodrošina metodi, ti, kolekcijas.sort (saraksts lst).Ja salīdzināmo tipu objektu saraksts jāsalīdzina, kolekcijas klase nodrošina metodi, ti,
Collections.sort (saraksts, salīdzinājums).

Salīdzināmas definīcijas

Salīdzināms ir interfeiss, kas ir pieejams java.lang paketē. Klase īsteno Comparator interfeisu, lai sakārtotu savu objektu dabiskā secībā. Objekti tiek sakārtoti dabiskā secībā, kas nozīmē, ka objekti tiek salīdzināti ar to ASCII vērtībām. Klases, kas īsteno salīdzināmo interfeisu, ir baits, rakstzīmju, dubultā, peldošā, garā, īsā, virknes un visaptverošās klases. Pat Datums un Kalendārs klase īsteno arī salīdzināmo interfeisu.

Salīdzināmā saskarne satur tikai vienu metodi, kas ir salīdzinājums (Object obj). Šī metode salīdzina objektu, ko izmanto, lai izsauktu metodi ar parametru, kas norādīts parametrā. Metodes sintakse ir šāda:

 publiska int salīdzinātTo (Object obj); 

Salīdzinot salīdzināšanas metodi (Object obj), 0, kad abiem objektiem, ko salīdzina ar metodi, ir tāda pati vērtība, tas atgriež -ve vērtību, ja izsaucošais objekts ir mazāks par noteikto objektu un atgriež + ve vērtību, ja izsaucošajam objektam ir lielāka vērtība vērtība, salīdzinot ar norādīto objektu. Kolekciju klase nodrošina kārtošanas metodi saraksta elementu šķirošanai. Saraksta (un masīva) elementi, kas ir salīdzināmi, var būt sakārtoti, izmantojot metodi “Kolekcijas.

Komparatora definīcija

Comparator ir saskarne, kas ir pieejama paketē java.util. Interfeisa Comparator netiek īstenota klasē, kuras objekti ir jāsalīdzina, bet atsevišķa klase īsteno Comparator interfeisu, lai šķirošanas loģika tiktu piemērota katram objekta datu elementam citā klasē. Comparator satur divas metodes:

 public int salīdzināt (Object obj1, Object obj2) un boolean vienāds (Object obj) 

Iepriekš aprakstītā salīdzināšanas metode salīdzina pirmo objektu obj1 ar otro objektu obj2. Salīdzinājums () metode atgriežas 0, kad abiem objektiem, kas salīdzināti ar metodi, ir tāda pati vērtība, tas atgriež -ve vērtību, ja obj1 objekts ir mazāks nekā obj2 objekts un atgriež + ve vērtību, ja obj1 objekts ir lielāks, salīdzinot ar objektu obj1. objektam obj2. Vienādas () metodes pārbauda, ​​vai norādītais objekts ir vienāds ar atsaucošo objektu. Metode, kas ir vienāda (), atgriežas taisnība, ja abi salīdzinātie objekti ir vienādi, citādi tas atgriež false . Kolekciju klase sniedz metodi saraksta elementu un salīdzinājuma veida šķirošanai. Salīdzinošo tipu saraksta elementi tiek sakārtoti pēc metodes Collections.sort (Saraksts, salīdzinājums).

Galvenās atšķirības starp salīdzināmu un salīdzināmu

  1. Salīdzināmā saskarne ļauj vienu šķirošanas secību, kas nozīmē, ka jūs varat salīdzināt tikai atsevišķu objekta datu elementu () metodi, salīdzinot ar Comparator interfeisu, kas ļauj veikt vairākas šķirošanas sekvences, kas nozīmē salīdzināt vairākus objekta datu elementus.
  2. Salīdzināmo interfeisu īsteno klase, kuras objekti ir jāsalīdzina, jo šķirošanas loģika ir noteikta tajā pašā klasē. No otras puses, Comparator interfeiss netiek īstenots ar klasi, kuras objekti ir jāsalīdzina, jo šķirošanas loģika ir definēta atsevišķās klasēs, kur katra klase definē šķirošanu uz viena objekta datu elementa, un šīs definējošās klases īsteno Comparator interfeisu .
  3. Salīdzināmā saskarne atrodas java.lang pakotnē, savukārt Comparator interfeiss atrodas java.util pakotnē.
  4. Salīdzināmā saskarne deklarē tikai vienu metodi, kas ir salīdzināta (Objekts obj), bet Comparator interfeiss deklarē divas metodes, salīdzinot (Object obj1, Object obj2) un vienādojumus (Object obj).
  5. Salīdzinošā salīdzināmā (Object obj) metode salīdzina metodi, kas vērsta pret objektu, ar norādīto objektu, kas nodots metodei, savukārt salīdzināšanas (Object obj1, Object obj2) metode Comparator salīdzina obj1 objektus ar obj2, kas tiek nodoti šai metodei.
  6. Kolekciju klase nodrošina šķirošanas metodi “Kolekcijas.sort (saraksts lst)”, lai sakārtotu salīdzināmā tipa objektus. Kolekciju klase nodrošina šķirošanas metodi Kolekcijas.sort (saraksts, salīdzinājums), lai sakārtotu Comparator tipa objektus.

Secinājums:

Ja vēlaties sakārtot objektus dabiskā pasūtījumā, tad varat izmantot salīdzināmo interfeisu, kuru vēlaties šķirot, pamatojoties uz jebkuru atribūtu, tad tiek izmantots Comparator interfeiss.

Top