Mis on Java võrdlusliides näidetega?

Mis On Java Vordlusliides Naidetega



Javas kasutatakse võrdlusfunktsiooni määratlemiseks liidest Comparator, mida saab kasutada objektide kogumi sortimiseks. See võimaldab sorteerida objekte kohandatud kriteeriumide alusel, mitte loomulikul järjestusel põhineva vaikevõrdluse alusel. Sellel on erinevad rakendused funktsioonide kohandamiseks vastavalt vajadustele. See artikkel selgitab Comparatori liidest koos paljude Java näidetega.

Mis on Java võrdlusliides näidetega?

Võrdleja liides sisaldab meetodeid võrdle() ja võrdub(). Esimest meetodit kasutatakse kahe objekti arvutamiseks täisarvu väärtuse tagastamisega. Teist meetodit kasutatakse kahe võrdusobjekti arvutamiseks.

Siin on erinevad näited selle kohta, kuidas Javas Comparatori liidest kasutada:







Näide 1: Sorteerige loend pikkuse alusel

Selles näites vaadeldakse stringide loendit ja sorteeritakse need nende pikkuse, mitte tähestikulise järjestuse alusel:



importida java.util.ArrayList ;

importida java.util.Collections ;

importida java.util.Comparator ;

importida java.util.List ;

avalik klass Peamine {

avalik staatiline tühine peamine ( String [ ] args ) {

Nimekiri < String > nimekirja = uus ArrayList <> ( ) ;

nimekirja. lisama ( 'John' ) ;

nimekirja. lisama ( 'Bob' ) ;

nimekirja. lisama ( 'Alice' ) ;

Kollektsioonid . sorteerida ( nimekirja ) ;

Süsteem . välja . println ( nimekirja ) ;

Kollektsioonid . sorteerida ( nimekiri, uus StringLengthComparator ( ) ) ;

Süsteem . välja . println ( nimekirja ) ;

}

} // Klass on määratletud

klass StringLengthComparator rakendab Võrdleja < String > {

avalik int võrdlema ( String s1, String s2 ) {

tagasi Täisarv . võrdlema ( s1. pikkus ( ) , s2. pikkus ( ) ) ;

}

}

Ülaltoodud koodi kirjeldus on toodud allpool:



  • Esiteks looge kohandatud Comparatori klass nimega StringLengthComparator, mis rakendab liidest Comparator.
  • See alistab kahe stringi pikkuse võrdlemiseks kasutatava võrdlus() meetodi.
  • Lõpuks edastage eksemplar meetodile.sort() loendi sortimiseks meie kohandatud võrdleja abil.

Väljund





Esimene väljund on loendi sortimise tulemus loomuliku järjestuse abil, teine ​​​​väljund on aga loendi sortimise tulemus, kasutades meie kohandatud võrdlust iga stringi pikkuse põhjal.



Näide 2: Objektide sortimine kindla välja alusel

Teine näide on objektide sorteerimiseks konkreetse välja alusel. Selle saavutamiseks kasutatakse Comparatori liidest:

importida java.util.ArrayList ;

importida java.util.Collections ;

importida java.util.Comparator ;

importida java.util.List ;

avalik klass Peamine {

avalik staatiline tühine peamine ( String [ ] args ) {

Nimekiri < Isik > isikud = uus ArrayList <> ( ) ; // Määrake nimi, vanus ja palgad

isikud. lisama ( uus Isik ( 'Alice' , 25 , 50 000 ) ) ;

isikud. lisama ( uus Isik ( 'Bob' , 30 , 75 000 ) ) ;

isikud. lisama ( uus Isik ( 'Charlie' , kakskümmend , 40 000 ) ) ;

Võrdleja < Isik > palkVõrdleja = uus Võrdleja < Isik > ( ) {

// Sorteeri isikud palga alusel

avalik int võrdlema ( Isik p1, Isik p2 ) {

tagasi Täisarv . võrdlema ( p2. saada Palka ( ) , p1. saada Palka ( ) ) ;

}

} ;

Kollektsioonid . sorteerida ( isikud, palkVõrdleja ) ; tagasi väärtusi sortida

// Prindib sorteeritud isikute loend

jaoks ( Isik inimene : isikud ) {

Süsteem . välja . println ( inimene ) ;

}

}

}

klass Isik { // Määrake nimi, vanus ja palk

privaatne String nimi ; // ulatus klassis
privaatne int vanus ;
privaatne int palk ;

avalik Isik ( String nimi, int vanus, int palk ) {
see . nimi = nimi ;
see . vanus = vanus ;
see . palk = palk ;
}
avalik String getName ( ) {
tagasi nimi ;
}
avalik int getAge ( ) {
tagasi vanus ;
}
avalik int saada Palka ( ) {
tagasi palk ;
}
avalik String toString ( ) {
tagasi nimi + ' (vanus ' + vanus + ', palk $' + palk + ')' ;
}
}

Koodi kirjeldus on toodud allpool:

  • Klass nimega ' Isik ' kolme väljaga: ' nimi ”, “ vanus ”, ja „ palk ' peetakse.
  • Pärast seda sortige isikuobjektide kogu sõltuvalt nende palgast kahanevas järjekorras.

Väljund

Väljundist selgub, et palgad on järjestatud kahanevas järjekorras.

Järeldus

Javas on Comparatori liides võimas tööriist, mis võimaldab kasutajatel objekte kohandatud kriteeriumide alusel sortida. See alistab võrdlemise () meetodi, kasutajad saavad määratleda oma võrdlusfunktsiooni ja kasutada seda objektide kogude sortimiseks mitmel erineval viisil. Selles artiklis on selgitatud Comparatori liidest koos praktiliste näidetega Javas.