Ce este interfața de comparație în Java cu exemple?

Ce Este Interfata De Comparatie In Java Cu Exemple



În Java, interfața Comparator este utilizată pentru a defini o funcție de comparare care poate fi folosită pentru a sorta o colecție de obiecte. Permite sortarea obiectelor pe baza criteriilor personalizate, mai degrabă decât pe comparația implicită bazată pe ordonarea naturală. Are diverse aplicații pentru a personaliza funcții în funcție de nevoi. Acest articol va explica interfața Comparator împreună cu numeroase exemple în Java.

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.