Čo je rozhranie komparátora v jazyku Java s príkladmi?

Co Je Rozhranie Komparatora V Jazyku Java S Prikladmi



V jazyku Java sa rozhranie Comparator používa na definovanie porovnávacej funkcie, ktorú možno použiť na triedenie kolekcie objektov. Umožňuje triedenie objektov na základe vlastných kritérií namiesto predvoleného porovnávania založeného na prirodzenom usporiadaní. Má rôzne aplikácie na prispôsobenie funkcií podľa potrieb. Tento článok vysvetlí rozhranie porovnávača spolu s mnohými príkladmi v jazyku Java.

Čo je rozhranie komparátora v jazyku Java s príkladmi?

Rozhranie Comparator obsahuje metódy Compare() a equals(). Prvá metóda sa používa na výpočet dvoch objektov vrátením celočíselnej hodnoty. Druhá metóda sa používa na výpočet dvoch porovnávacích objektov pre rovnosť.

Tu sú rôzne príklady použitia rozhrania komparátora v jazyku Java:







Príklad 1: Zoraďte zoznam podľa dĺžky

V tomto príklade sa berie do úvahy zoznam reťazcov a triedi sa podľa ich dĺžky namiesto abecedného poradia:



importovať java.util.ArrayList ;

importovať java.util.Collections ;

importovať java.util.Comparator ;

importovať java.util.List ;

verejnosti trieda Hlavná {

verejnosti statické neplatné Hlavná ( Reťazec [ ] args ) {

Zoznam < Reťazec > zoznam = Nový ArrayList <> ( ) ;

zoznam. pridať ( 'John' ) ;

zoznam. pridať ( 'Bob' ) ;

zoznam. pridať ( 'Alice' ) ;

zbierky . triediť ( zoznam ) ;

Systém . von . println ( zoznam ) ;

zbierky . triediť ( zoznam, Nový StringLengthComparator ( ) ) ;

Systém . von . println ( zoznam ) ;

}

} // Trieda je definovaná

trieda StringLengthComparator náradia Porovnávač < Reťazec > {

verejnosti int porovnať ( Reťazec s1, Reťazec s2 ) {

vrátiť Celé číslo . porovnať ( s1. dĺžka ( ) , s2. dĺžka ( ) ) ;

}

}

Popis vyššie uvedeného kódu je uvedený nižšie:



  • Najprv vytvorte vlastnú triedu Comparator s názvom StringLengthComparator, ktorá implementuje rozhranie Comparator.
  • Nahrádza metódu Compare() na porovnávanie dĺžky dvoch reťazcov.
  • Nakoniec odovzdajte inštanciu metóde.sort() na triedenie zoznamu pomocou nášho vlastného porovnávača.

Výkon





Prvý výstup je výsledkom triedenia zoznamu pomocou prirodzeného usporiadania, zatiaľ čo druhý výstup je výsledkom triedenia zoznamu pomocou nášho vlastného porovnávača na základe dĺžky každého reťazca.



Príklad 2: Triedenie objektov na základe špecifického poľa

Ďalším príkladom je triedenie objektov na základe špecifického poľa. Na dosiahnutie tohto cieľa sa používa rozhranie komparátora:

importovať java.util.ArrayList ;

importovať java.util.Collections ;

importovať java.util.Comparator ;

importovať java.util.List ;

verejnosti trieda Hlavná {

verejnosti statické neplatné Hlavná ( Reťazec [ ] args ) {

Zoznam < Osoba > osôb = Nový ArrayList <> ( ) ; // Priraďte meno, vek a platy

osôb. pridať ( Nový Osoba ( 'Alice' , 25 , 50 000 ) ) ;

osôb. pridať ( Nový Osoba ( 'Bob' , 30 , 75 000 ) ) ;

osôb. pridať ( Nový Osoba ( 'Charlie' , dvadsať , 40 000 ) ) ;

Porovnávač < Osoba > mzdový porovnávač = Nový Porovnávač < Osoba > ( ) {

// Zoraďte osoby podľa platu

verejnosti int porovnať ( Osoba p1, Osoba p2 ) {

vrátiť Celé číslo . porovnať ( p2. získať plat ( ) , p1. získať plat ( ) ) ;

}

} ;

zbierky . triediť ( osôb, platPorovnávač ) ; vrátiť triediť hodnoty

// Vytlačí zoradený zoznam osôb

pre ( Osoba osoba : osôb ) {

Systém . von . println ( osoba ) ;

}

}

}

trieda Osoba { // Definujte meno, vek a plat

súkromné Reťazec názov ; // rozsah v rámci triedy
súkromné int Vek ;
súkromné int plat ;

verejnosti Osoba ( Reťazec názov, int Vek, int plat ) {
toto . názov = názov ;
toto . Vek = Vek ;
toto . plat = plat ;
}
verejnosti Reťazec getName ( ) {
vrátiť názov ;
}
verejnosti int getAge ( ) {
vrátiť Vek ;
}
verejnosti int získať plat ( ) {
vrátiť plat ;
}
verejnosti Reťazec natiahnuť ( ) {
vrátiť názov + ' (Vek ' + Vek + ', plat $' + plat + ')' ;
}
}

Popis kódu je uvedený nižšie:

  • Trieda s názvom „ Osoba “ s tromi poliami: “ názov “, “ Vek “ a „ plat ' je považovaný.
  • Potom zoraďte zbierku objektov osôb v zostupnom poradí podľa ich platu.

Výkon

Výstup ukazuje, že platy boli zoradené zostupne.

Záver

V jazyku Java je rozhranie Comparator výkonným nástrojom, ktorý umožňuje používateľom triediť objekty na základe vlastných kritérií. Nahrádza metódu Compare(), používatelia môžu definovať svoju vlastnú porovnávaciu funkciu a použiť ju na triedenie kolekcií objektov rôznymi spôsobmi. Tento článok vysvetľuje rozhranie porovnávača spolu s praktickými príkladmi v jazyku Java.