Ce este interfața de comparație în Java cu exemple?
Interfața Comparator conține metodele compare() și equals(). Prima metodă este utilizată pentru a calcula două obiecte returnând o valoare întreagă. Cealaltă metodă este utilizată pentru a calcula două obiecte comparatoare pentru egalitate.
Iată diferite exemple de utilizare a interfeței Comparator în Java:
Exemplul 1: Sortați o listă în funcție de lungime
În acest exemplu, este luată în considerare o listă de șiruri de caractere și le sortați în funcție de lungimea lor și nu de ordinea alfabetică:
import java.util.ArrayList ;
import java.util.Colectii ;
import java.util.Comparator ;
import java.util.List ;
public clasă Principal {
public static gol principal ( Şir [ ] argumente ) {
Listă < Şir > listă = nou ArrayList <> ( ) ;
listă. adăuga ( 'Ioan' ) ;
listă. adăuga ( 'Bob' ) ;
listă. adăuga ( 'Alice' ) ;
Colecții . fel ( listă ) ;
Sistem . afară . println ( listă ) ;
Colecții . fel ( listă, nou StringLengthComparator ( ) ) ;
Sistem . afară . println ( listă ) ;
}
} // O clasă este definită
clasă StringLengthComparator unelte Comparator < Şir > {
public int comparaţie ( Şir s1, Şir s2 ) {
întoarcere Întreg . comparaţie ( s1. lungime ( ) , s2. lungime ( ) ) ;
}
}
Descrierea codului de mai sus este prezentată mai jos:
- Mai întâi, creați o clasă personalizată Comparator numită StringLengthComparator care implementează interfața Comparator
. - Ea suprascrie metoda compare() pentru compararea lungimii a două șiruri.
- În cele din urmă, transmiteți o instanță metodei.sort() pentru sortarea listei folosind comparatorul nostru personalizat.
Ieșire
Prima ieșire este rezultatul sortării listei folosind ordinea naturală, în timp ce a doua ieșire este rezultatul sortării listei folosind comparatorul nostru personalizat pe baza lungimii fiecărui șir.
Exemplul 2: Sortarea obiectelor pe baza unui câmp specific
Un alt exemplu este efectuat pentru sortarea obiectelor pe baza unui anumit câmp. Interfața Comparator este utilizată pentru a realiza acest lucru:
import java.util.ArrayList ;import java.util.Colectii ;
import java.util.Comparator ;
import java.util.List ;
public clasă Principal {
public static gol principal ( Şir [ ] argumente ) {
Listă < Persoană > persoane = nou ArrayList <> ( ) ; // Atribuiți nume, vârstă și salarii
persoane. adăuga ( nou Persoană ( 'Alice' , 25 , 50000 ) ) ;
persoane. adăuga ( nou Persoană ( 'Bob' , 30 , 75000 ) ) ;
persoane. adăuga ( nou Persoană ( 'Charlie' , douăzeci , 40000 ) ) ;
Comparator < Persoană > SalaryComparator = nou Comparator < Persoană > ( ) {
// Sortați persoanele în funcție de salariu
public int comparaţie ( Persoana p1, Persoana p2 ) {
întoarcere Întreg . comparaţie ( p2. obține Salariul ( ) , p1. obține Salariul ( ) ) ;
}
} ;
Colecții . fel ( persoane, salariuComparator ) ; întoarcere sortarea valorilor
// Imprimă o listă sortată de persoane
pentru ( Persoana persoana : persoane ) {
Sistem . afară . println ( persoană ) ;
}
}
}
clasă Persoană { // Definiți numele, vârsta și salariul
privat Şir Nume ; // domeniul de aplicare într-o clasă
privat int vârstă ;
privat int salariu ;
public Persoană ( Şir Nume, int vârstă, int salariu ) {
acest . Nume = Nume ;
acest . vârstă = vârstă ;
acest . salariu = salariu ;
}
public Şir getName ( ) {
întoarcere Nume ;
}
public int getAge ( ) {
întoarcere vârstă ;
}
public int obține Salariul ( ) {
întoarcere salariu ;
}
public Şir toString ( ) {
întoarcere Nume + '(varsta' + vârstă + ', salariu $' + salariu + ')' ;
}
}
Descrierea codului este prezentată mai jos:
- O clasă numită „ Persoană ” cu trei câmpuri: “ Nume ”, “ vârstă ', și ' salariu ' este considerat.
- După aceea, sortați o colecție de obiecte Persoană în funcție de salariul lor în ordine descrescătoare.
Ieșire
Rezultatul arată că salariile au fost sortate în ordine descrescătoare.
Concluzie
În Java, interfața Comparator este un instrument puternic care permite utilizatorilor să sorteze obiecte pe baza unor criterii personalizate. Ea suprascrie metoda compare(), utilizatorii își pot defini propria funcție de comparare și o pot folosi pentru a sorta colecții de obiecte într-o varietate de moduri. Acest articol a explicat interfața Comparator împreună cu exemple practice în Java.