Što je sučelje usporedbe u Javi s primjerima?

Sto Je Sucelje Usporedbe U Javi S Primjerima



U Javi se sučelje Comparator koristi za definiranje funkcije usporedbe koja se može koristiti za sortiranje zbirke objekata. Omogućuje sortiranje objekata na temelju prilagođenih kriterija umjesto zadane usporedbe na temelju prirodnog redoslijeda. Ima razne aplikacije za prilagodbu funkcija prema potrebama. Ovaj članak će objasniti sučelje Comparator-a zajedno s brojnim primjerima u Javi.

Što je sučelje usporedbe u Javi s primjerima?

Sučelje Comparator sadrži metode compare() i equals(). Prva metoda se koristi za izračunavanje dva objekta vraćanjem vrijednosti cijelog broja. Druga se metoda koristi za izračunavanje dvaju usporednih objekata za jednakost.

Evo različitih primjera kako koristiti sučelje Comparator u Javi:







Primjer 1: Sortiraj popis na temelju duljine

U ovom primjeru razmatra se popis nizova i sortira ih na temelju njihove duljine umjesto abecednog reda:



uvoz java.util.ArrayList ;

uvoz java.util.Zbirke ;

uvoz java.util.Usporednik ;

uvoz java.util.List ;

javnost razreda Glavni {

javnost statički poništiti glavni ( Niz [ ] args ) {

Popis < Niz > popis = novi ArrayList <> ( ) ;

popis. dodati ( 'Ivan' ) ;

popis. dodati ( 'Bob' ) ;

popis. dodati ( 'Alice' ) ;

Zbirke . vrsta ( popis ) ;

Sustav . van . println ( popis ) ;

Zbirke . vrsta ( popis, novi Usporednik dužine niza ( ) ) ;

Sustav . van . println ( popis ) ;

}

} // Klasa je definirana

razreda Usporednik dužine niza oruđa Usporednik < Niz > {

javnost int usporediti ( Niz s1, Niz s2 ) {

povratak Cijeli broj . usporediti ( s1. duljina ( ) , s2. duljina ( ) ) ;

}

}

Opis gornjeg koda dat je u nastavku:



  • Prvo stvorite prilagođenu klasu Comparator pod nazivom StringLengthComparator koja implementira sučelje Comparator.
  • Ona nadjačava metodu compare() za usporedbu duljine dva niza.
  • Na kraju, proslijedite instancu metodi the.sort() za sortiranje popisa pomoću našeg prilagođenog usporednika.

Izlaz





Prvi izlaz rezultat je sortiranja popisa pomoću prirodnog redoslijeda, dok je drugi izlaz rezultat sortiranja popisa pomoću našeg prilagođenog komparatora na temelju duljine svakog niza.



Primjer 2: Sortiranje objekata na temelju određenog polja

Drugi primjer provodi se za sortiranje objekata na temelju određenog polja. Za ovo se koristi sučelje Comparator:

uvoz java.util.ArrayList ;

uvoz java.util.Zbirke ;

uvoz java.util.Usporednik ;

uvoz java.util.List ;

javnost razreda Glavni {

javnost statički poništiti glavni ( Niz [ ] args ) {

Popis < Osoba > osobe = novi ArrayList <> ( ) ; // Dodijelite ime, dob i plaće

osobe. dodati ( novi Osoba ( 'Alice' , 25 , 50000 ) ) ;

osobe. dodati ( novi Osoba ( 'Bob' , 30 , 75000 ) ) ;

osobe. dodati ( novi Osoba ( 'Charlie' , dvadeset , 40000 ) ) ;

Usporednik < Osoba > usporednik plaća = novi Usporednik < Osoba > ( ) {

// Poredaj osobe na temelju plaće

javnost int usporediti ( Osoba p1, osoba p2 ) {

povratak Cijeli broj . usporediti ( p2. getSalary ( ) , p1. getSalary ( ) ) ;

}

} ;

Zbirke . vrsta ( osobe, plaća Usporednik ) ; povratak sortirati vrijednosti

// Ispis sortiranog popisa osoba

za ( Osoba osoba : osobe ) {

Sustav . van . println ( osoba ) ;

}

}

}

razreda Osoba { // Definirajte ime, dob i plaću

privatna Niz Ime ; // opseg unutar klase
privatna int dob ;
privatna int plaća ;

javnost Osoba ( Niz Ime, int dob, int plaća ) {
ovaj . Ime = Ime ;
ovaj . dob = dob ;
ovaj . plaća = plaća ;
}
javnost Niz getName ( ) {
povratak Ime ;
}
javnost int getAge ( ) {
povratak dob ;
}
javnost int getSalary ( ) {
povratak plaća ;
}
javnost Niz toString ( ) {
povratak Ime + ' (dob ' + dob + ', plaća $' + plaća + ')' ;
}
}

Opis koda je dolje:

  • Klasa pod nazivom ' Osoba ” sa tri polja: “ Ime ”, “ dob ', i ' plaća ' Smatra.
  • Nakon toga sortirajte kolekciju objekata Osobe ovisno o njihovoj plaći silaznim redoslijedom.

Izlaz

Izlaz pokazuje da su plaće poredane prema silaznom redoslijedu.

Zaključak

U Javi, sučelje Comparator moćan je alat koji korisnicima omogućuje sortiranje objekata na temelju prilagođenih kriterija. Ona nadjačava metodu compare(), korisnici mogu definirati vlastitu funkciju usporedbe i koristiti je za sortiranje kolekcija objekata na razne načine. Ovaj članak objašnjava sučelje Comparator-a zajedno s praktičnim primjerima u Javi.