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.