Mikä on Java-vertailuliittymä esimerkkien kanssa?

Mika On Java Vertailuliittyma Esimerkkien Kanssa



Javassa Comparator-liittymää käytetään vertailufunktion määrittämiseen, jota voidaan käyttää objektikokoelman lajitteluun. Se mahdollistaa objektien lajittelun mukautettujen kriteerien perusteella luonnolliseen järjestykseen perustuvan oletusvertailun sijaan. Siinä on erilaisia ​​sovelluksia toimintojen mukauttamiseen tarpeiden mukaan. Tämä artikkeli selittää Comparator-käyttöliittymän ja lukuisia esimerkkejä Javassa.

Mikä on Java-vertailuliittymä esimerkkien kanssa?

Comparator-liittymä sisältää vertaa()- ja equals()-menetelmiä. Ensimmäistä menetelmää käytetään kahden objektin laskemiseen palauttamalla kokonaislukuarvo. Toista menetelmää käytetään kahden vertailuobjektin tasa-arvon laskemiseen.

Tässä on erilaisia ​​esimerkkejä Comparator-käyttöliittymän käyttämisestä Javassa:







Esimerkki 1: Lajittele luettelo pituuden perusteella

Tässä esimerkissä tarkastellaan merkkijonoluetteloa ja lajitellaan ne pituuden perusteella aakkosjärjestyksen sijaan:



tuonti java.util.ArrayList ;

tuonti java.util.Collections ;

tuonti java.util.Comparator ;

tuonti java.util.List ;

julkinen luokkaa Main {

julkinen staattinen mitätön pää ( merkkijono [ ] args ) {

Lista < merkkijono > lista = Uusi ArrayList <> ( ) ;

lista. lisätä ( 'John' ) ;

lista. lisätä ( 'Bob' ) ;

lista. lisätä ( 'Liisa' ) ;

Kokoelmat . järjestellä ( lista ) ;

Järjestelmä . ulos . println ( lista ) ;

Kokoelmat . järjestellä ( lista, Uusi StringLengthComparator ( ) ) ;

Järjestelmä . ulos . println ( lista ) ;

}

} // Luokka on määritelty

luokkaa StringLengthComparator toteuttaa Vertailija < merkkijono > {

julkinen int vertailla ( merkkijono s1, merkkijono s2 ) {

palata Kokonaisluku . vertailla ( s1. pituus ( ) , s2. pituus ( ) ) ;

}

}

Yllä olevan koodin kuvaus on alla:



  • Luo ensin mukautettu Comparator-luokka nimeltä StringLengthComparator, joka toteuttaa Comparator-rajapinnan.
  • Se ohittaa vertailu()-menetelmän kahden merkkijonon pituuden vertailussa.
  • Välitä lopuksi ilmentymä .sort()-metodille luettelon lajittelemiseksi mukautetun vertailumme avulla.

Lähtö





Ensimmäinen tulos on tulos lajittelemalla luettelo luonnollisella järjestyksellä, kun taas toinen tulos on tulos lajittelemalla luettelo käyttämällä mukautettua vertailijaamme kunkin merkkijonon pituuden perusteella.



Esimerkki 2: Objektien lajittelu tietyn kentän perusteella

Toinen esimerkki on lajitella esineitä tietyn kentän perusteella. Tämän saavuttamiseksi käytetään Comparator-käyttöliittymää:

tuonti java.util.ArrayList ;

tuonti java.util.Collections ;

tuonti java.util.Comparator ;

tuonti java.util.List ;

julkinen luokkaa Main {

julkinen staattinen mitätön pää ( merkkijono [ ] args ) {

Lista < Henkilö > henkilöt = Uusi ArrayList <> ( ) ; // Anna nimi, ikä ja palkat

henkilöt. lisätä ( Uusi Henkilö ( 'Liisa' , 25 , 50 000 ) ) ;

henkilöt. lisätä ( Uusi Henkilö ( 'Bob' , 30 , 75 000 ) ) ;

henkilöt. lisätä ( Uusi Henkilö ( 'Charlie' , kaksikymmentä , 40 000 ) ) ;

Vertailija < Henkilö > palkkaVertailija = Uusi Vertailija < Henkilö > ( ) {

// Lajittele henkilöt palkan perusteella

julkinen int vertailla ( Henkilö p1, henkilö p2 ) {

palata Kokonaisluku . vertailla ( p2. saa palkkaa ( ) , p1. saa palkkaa ( ) ) ;

}

} ;

Kokoelmat . järjestellä ( henkilöt, palkkaVertailija ) ; palata lajitella arvot

// Tulosta lajiteltu henkilöluettelo

varten ( Henkilö henkilö : henkilöt ) {

Järjestelmä . ulos . println ( henkilö ) ;

}

}

}

luokkaa Henkilö { // Määrittele nimi, ikä ja palkka

yksityinen merkkijono nimi ; // laajuus luokassa
yksityinen int ikä ;
yksityinen int palkkaa ;

julkinen Henkilö ( merkkijono nimi, int ikä, int palkkaa ) {
Tämä . nimi = nimi ;
Tämä . ikä = ikä ;
Tämä . palkkaa = palkkaa ;
}
julkinen merkkijono getName ( ) {
palata nimi ;
}
julkinen int getAge ( ) {
palata ikä ;
}
julkinen int saa palkkaa ( ) {
palata palkkaa ;
}
julkinen merkkijono toString ( ) {
palata nimi + '(ikä' + ikä + ', palkka $' + palkkaa + ')' ;
}
}

Koodin kuvaus on alla:

  • Luokka nimeltä ' Henkilö ' kolmella kentällä: ' nimi ”, “ ikä ”, ja ” palkkaa ” harkitaan.
  • Lajittele sen jälkeen henkilö-objektien kokoelma heidän palkansa mukaan laskevaan järjestykseen.

Lähtö

Tulos osoittaa, että palkat on lajiteltu laskevaan järjestykseen.

Johtopäätös

Javassa Comparator-käyttöliittymä on tehokas työkalu, jonka avulla käyttäjät voivat lajitella objekteja mukautettujen kriteerien perusteella. Se ohittaa vertailu()-menetelmän, käyttäjät voivat määritellä oman vertailufunktionsa ja käyttää sitä lajitellakseen objektikokoelmia monin eri tavoin. Tässä artikkelissa on selitetty Comparator-käyttöliittymä ja käytännön esimerkkejä Javassa.