Kaj je primerjalni vmesnik v Javi s primeri?

Kaj Je Primerjalni Vmesnik V Javi S Primeri



V Javi se vmesnik Comparator uporablja za definiranje primerjalne funkcije, ki se lahko uporablja za razvrščanje zbirke objektov. Omogoča razvrščanje predmetov na podlagi meril po meri namesto privzete primerjave na podlagi naravnega vrstnega reda. Ima različne aplikacije za prilagajanje funkcij glede na potrebe. Ta članek bo razložil vmesnik Comparator skupaj s številnimi primeri v Javi.

Kaj je primerjalni vmesnik v Javi s primeri?

Vmesnik Comparator vsebuje metode compare() in equals(). Prva metoda se uporablja za izračun dveh objektov z vrnitvijo vrednosti celega števila. Druga metoda se uporablja za izračun dveh primerjalnih objektov za enakost.

Tu so različni primeri uporabe vmesnika Comparator v Javi:







Primer 1: Razvrstite seznam glede na dolžino

V tem primeru je obravnavan seznam nizov, ki so razvrščeni glede na njihovo dolžino namesto po abecednem vrstnem redu:



uvoz java.util.ArrayList ;

uvoz java.util.Zbirke ;

uvoz java.util.Comparator ;

uvoz java.util.List ;

javnosti razred Glavni {

javnosti statična praznina glavni ( Vrvica [ ] args ) {

Seznam < Vrvica > seznam = novo ArrayList <> ( ) ;

seznam. dodati ( 'Janez' ) ;

seznam. dodati ( 'Bob' ) ;

seznam. dodati ( 'Alice' ) ;

Zbirke . vrsta ( seznam ) ;

Sistem . ven . println ( seznam ) ;

Zbirke . vrsta ( seznam, novo StringLengthComparator ( ) ) ;

Sistem . ven . println ( seznam ) ;

}

} // Razred je definiran

razred StringLengthComparator pripomočke Primerjalnik < Vrvica > {

javnosti int primerjati ( Vrvica s1, Vrvica s2 ) {

vrnitev Celo število . primerjati ( s1. dolžina ( ) , s2. dolžina ( ) ) ;

}

}

Opis zgornje kode je podan spodaj:



  • Najprej ustvarite razred Comparator po meri, imenovan StringLengthComparator, ki implementira vmesnik Comparator.
  • Preglasi metodo compare() za primerjavo dolžin dveh nizov.
  • Na koncu posredujte primerek metodi the.sort() za razvrščanje seznama z uporabo našega primerjalnika po meri.

Izhod





Prvi izhod je rezultat razvrščanja seznama z uporabo naravnega vrstnega reda, medtem ko je drugi izhod rezultat razvrščanja seznama z uporabo našega primerjalnika po meri glede na dolžino vsakega niza.



Primer 2: Razvrščanje predmetov na podlagi določenega polja

Drug primer je izveden za razvrščanje predmetov na podlagi določenega polja. Za dosego tega se uporablja vmesnik Comparator:

uvoz java.util.ArrayList ;

uvoz java.util.Zbirke ;

uvoz java.util.Comparator ;

uvoz java.util.List ;

javnosti razred Glavni {

javnosti statična praznina glavni ( Vrvica [ ] args ) {

Seznam < Oseba > osebe = novo ArrayList <> ( ) ; // Določite ime, starost in plače

osebe. dodati ( novo Oseba ( 'Alice' , 25 , 50000 ) ) ;

osebe. dodati ( novo Oseba ( 'Bob' , 30 , 75000 ) ) ;

osebe. dodati ( novo Oseba ( 'Charlie' , dvajset , 40000 ) ) ;

Primerjalnik < Oseba > salaryComparator = novo Primerjalnik < Oseba > ( ) {

// Razvrsti osebe glede na plačo

javnosti int primerjati ( Oseba p1, oseba p2 ) {

vrnitev Celo število . primerjati ( p2. getSalary ( ) , p1. getSalary ( ) ) ;

}

} ;

Zbirke . vrsta ( oseb, salaryComparator ) ; vrnitev razvrstite vrednosti

// Natisni razvrščeni seznam oseb

za ( Oseba oseba : osebe ) {

Sistem . ven . println ( oseba ) ;

}

}

}

razred Oseba { // Določite ime, starost in plačo

zasebno Vrvica ime ; // obseg v razredu
zasebno int starost ;
zasebno int plača ;

javnosti Oseba ( Vrvica ime, int starost, int plača ) {
to . ime = ime ;
to . starost = starost ;
to . plača = plača ;
}
javnosti Vrvica getName ( ) {
vrnitev ime ;
}
javnosti int getAge ( ) {
vrnitev starost ;
}
javnosti int getSalary ( ) {
vrnitev plača ;
}
javnosti Vrvica toString ( ) {
vrnitev ime + ' (starost ' + starost + ', plača $' + plača + ')' ;
}
}

Opis kode je podan spodaj:

  • Razred z imenom ' Oseba « s tremi polji: » ime ”, “ starost «, in » plača ' velja.
  • Nato razvrstite zbirko predmetov Person glede na njihovo plačo v padajočem vrstnem redu.

Izhod

Izhod kaže, da so bile plače razvrščene po padajočem vrstnem redu.

Zaključek

V Javi je vmesnik Comparator zmogljivo orodje, ki uporabnikom omogoča razvrščanje predmetov na podlagi meril po meri. Preglasi metodo compare(), uporabniki lahko definirajo lastno primerjalno funkcijo in jo uporabijo za razvrščanje zbirk predmetov na različne načine. V tem članku je razložen vmesnik Comparator skupaj s praktičnimi primeri v Javi.