Kas ir Java salīdzinājuma interfeiss ar piemēriem?

Kas Ir Java Salidzinajuma Interfeiss Ar Piemeriem



Java versijā Comparator interfeiss tiek izmantots, lai definētu salīdzināšanas funkciju, ko var izmantot objektu kolekcijas kārtošanai. Tas ļauj kārtot objektus, pamatojoties uz pielāgotiem kritērijiem, nevis noklusējuma salīdzinājumu, pamatojoties uz dabisku secību. Tam ir dažādas lietojumprogrammas, lai pielāgotu funkcijas atbilstoši vajadzībām. Šajā rakstā tiks izskaidrots Comparator interfeiss, kā arī daudzi Java piemēri.

Kas ir Java salīdzinājuma interfeiss ar piemēriem?

Salīdzinājuma interfeiss satur salīdzināt() un vienāds() metodes. Pirmā metode tiek izmantota, lai aprēķinātu divus objektus, atgriežot vesela skaitļa vērtību. Otra metode tiek izmantota, lai aprēķinātu divus salīdzinājuma objektus vienlīdzībai.

Šeit ir dažādi piemēri, kā izmantot salīdzinājuma saskarni Java:







1. piemērs. Kārtojiet sarakstu, pamatojoties uz garumu

Šajā piemērā tiek apskatīts virkņu saraksts un sakārtotas tās pēc garuma, nevis alfabētiskā secībā:



imports java.util.ArrayList ;

imports java.util.Collections ;

imports java.util.Comparator ;

imports java.util.List ;

publiski klasē Galvenā {

publiski statisks nederīgs galvenais ( Stīga [ ] args ) {

Saraksts < Stīga > sarakstu = jauns ArrayList <> ( ) ;

sarakstu. pievienot ( 'Džons' ) ;

sarakstu. pievienot ( 'Bobs' ) ;

sarakstu. pievienot ( 'Alise' ) ;

Kolekcijas . kārtot ( sarakstu ) ;

Sistēma . ārā . println ( sarakstu ) ;

Kolekcijas . kārtot ( saraksts, jauns StringLengthComparator ( ) ) ;

Sistēma . ārā . println ( sarakstu ) ;

}

} // Klase ir definēta

klasē StringLengthComparator īsteno Salīdzinātājs < Stīga > {

publiski starpt salīdzināt ( Stīga s1, Stīga s2 ) {

atgriezties Vesels skaitlis . salīdzināt ( s1. garums ( ) , s2. garums ( ) ) ;

}

}

Iepriekš minētā koda apraksts ir sniegts zemāk:



  • Vispirms izveidojiet pielāgotu Comparator klasi ar nosaukumu StringLengthComparator, kas ievieš saskarni Comparator.
  • Tas ignorē salīdzināt() metodi divu virkņu garuma salīdzināšanai.
  • Beigās nosūtiet gadījumu .sort() metodei, lai sakārtotu sarakstu, izmantojot mūsu pielāgoto salīdzinājumu.

Izvade





Pirmā izvade ir saraksta kārtošanas rezultāts, izmantojot dabisko secību, savukārt otrā izvade ir saraksta kārtošanas rezultāts, izmantojot mūsu pielāgoto salīdzinājumu, pamatojoties uz katras virknes garumu.



2. piemērs: Objektu kārtošana, pamatojoties uz noteiktu lauku

Vēl viens piemērs tiek veikts, lai kārtotu objektus, pamatojoties uz noteiktu lauku. Lai to panāktu, tiek izmantots Comparator interfeiss:

imports java.util.ArrayList ;

imports java.util.Collections ;

imports java.util.Comparator ;

imports java.util.List ;

publiski klasē Galvenā {

publiski statisks nederīgs galvenais ( Stīga [ ] args ) {

Saraksts < Persona > personām = jauns ArrayList <> ( ) ; // Piešķirt vārdu, vecumu un algas

personām. pievienot ( jauns Persona ( 'Alise' , 25 , 50 000 ) ) ;

personām. pievienot ( jauns Persona ( 'Bobs' , 30 , 75 000 ) ) ;

personām. pievienot ( jauns Persona ( 'Čārlijs' , divdesmit , 40 000 ) ) ;

Salīdzinātājs < Persona > algaSalīdzinātājs = jauns Salīdzinātājs < Persona > ( ) {

// Kārtot personas pēc algas

publiski starpt salīdzināt ( Persona p1, Persona p2 ) {

atgriezties Vesels skaitlis . salīdzināt ( p2. saņemtAlgu ( ) , p1. saņemtAlgu ( ) ) ;

}

} ;

Kolekcijas . kārtot ( personas, algaSalīdzinātājs ) ; atgriezties kārtot vērtības

// Izdrukājiet sakārtotu personu sarakstu

priekš ( Persona persona : personām ) {

Sistēma . ārā . println ( persona ) ;

}

}

}

klasē Persona { // Norādiet vārdu, vecumu un algu

Privāts Stīga nosaukums ; // tvērums klasē
Privāts starpt vecums ;
Privāts starpt algu ;

publiski Persona ( Stīga vārds, starpt vecums, starpt algu ) {
šis . nosaukums = nosaukums ;
šis . vecums = vecums ;
šis . algu = algu ;
}
publiski Stīga getName ( ) {
atgriezties nosaukums ;
}
publiski starpt getAge ( ) {
atgriezties vecums ;
}
publiski starpt saņemtAlgu ( ) {
atgriezties algu ;
}
publiski Stīga toString ( ) {
atgriezties nosaukums + ' (vecums ' + vecums + ', alga $' + algu + ')' ;
}
}

Koda apraksts ir sniegts zemāk:

  • Klase ar nosaukumu ' Persona ” ar trim laukiem: „ nosaukums ”, “ vecums ', un ' algu ' tiek uzskatīts.
  • Pēc tam sakārtojiet personu objektu kolekciju atkarībā no viņu algas dilstošā secībā.

Izvade

Iznākumā redzams, ka algas ir sakārtotas dilstošā secībā.

Secinājums

Java versijā Comparator interfeiss ir spēcīgs rīks, kas lietotājiem ļauj kārtot objektus, pamatojoties uz pielāgotiem kritērijiem. Tas ignorē salīdzināt() metodi, lietotāji var definēt paši savu salīdzināšanas funkciju un izmantot to, lai dažādos veidos kārtotu objektu kolekcijas. Šajā rakstā ir izskaidrots Comparator interfeiss, kā arī praktiski Java piemēri.