Che cos'è l'interfaccia di confronto in Java con esempi?

Che Cos E L Interfaccia Di Confronto In Java Con Esempi



In Java, l'interfaccia Comparator viene utilizzata per definire una funzione di confronto che può essere utilizzata per ordinare una raccolta di oggetti. Consente di ordinare gli oggetti in base a criteri personalizzati anziché al confronto predefinito basato sull'ordinamento naturale. Ha varie applicazioni per personalizzare le funzioni in base alle esigenze. Questo articolo spiegherà l'interfaccia Comparator insieme a numerosi esempi in Java.

Che cos'è l'interfaccia di confronto in Java con esempi?

L'interfaccia Comparator contiene i metodi compare() e equals(). Il primo metodo viene utilizzato per calcolare due oggetti restituendo un valore intero. L'altro metodo è utilizzato per calcolare due oggetti comparatori per l'uguaglianza.

Ecco diversi esempi di come utilizzare l'interfaccia Comparator in Java:







Esempio 1: ordinare un elenco in base alla lunghezza

In questo esempio, viene considerato un elenco di stringhe e le ordina in base alla loro lunghezza anziché all'ordine alfabetico:



importare java.util.ArrayList ;

importare java.util.Collections ;

importare java.util.Comparator ;

importare java.util.List ;

pubblico classe Principale {

pubblico statico vuoto principale ( Corda [ ] arg ) {

Elenco < Corda > elenco = nuovo Lista di array <> ( ) ;

elenco. aggiungere ( 'John' ) ;

elenco. aggiungere ( 'Bob' ) ;

elenco. aggiungere ( 'Alice' ) ;

Collezioni . ordinare ( elenco ) ;

Sistema . fuori . println ( elenco ) ;

Collezioni . ordinare ( elenco, nuovo StringLengthComparator ( ) ) ;

Sistema . fuori . println ( elenco ) ;

}

} // Una classe è definita

classe StringLengthComparator implementa Comparatore < Corda > {

pubblico int confrontare ( Corda s1, Corda s2 ) {

ritorno Numero intero . confrontare ( s1. lunghezza ( ) , s2. lunghezza ( ) ) ;

}

}

Di seguito si riporta la descrizione del suddetto codice:



  • Creare innanzitutto una classe Comparator personalizzata denominata StringLengthComparator che implementa l'interfaccia Comparator.
  • Sovrascrive il metodo compare() per confrontare la lunghezza di due stringhe.
  • Alla fine, passa un'istanza al metodo.sort() per ordinare l'elenco usando il nostro comparatore personalizzato.

Produzione





Il primo output è il risultato dell'ordinamento dell'elenco utilizzando l'ordinamento naturale, mentre il secondo output è il risultato dell'ordinamento dell'elenco utilizzando il nostro comparatore personalizzato in base alla lunghezza di ciascuna stringa.



Esempio 2: ordinamento di oggetti in base a un campo specifico

Un altro esempio viene condotto per ordinare gli oggetti in base a un campo specifico. L'interfaccia Comparator viene utilizzata per raggiungere questo obiettivo:

importare java.util.ArrayList ;

importare java.util.Collections ;

importare java.util.Comparator ;

importare java.util.List ;

pubblico classe Principale {

pubblico statico vuoto principale ( Corda [ ] arg ) {

Elenco < Persona > persone = nuovo Lista di array <> ( ) ; // Assegna nome, età e stipendio

persone. aggiungere ( nuovo Persona ( 'Alice' , 25 , 50000 ) ) ;

persone. aggiungere ( nuovo Persona ( 'Bob' , 30 , 75000 ) ) ;

persone. aggiungere ( nuovo Persona ( 'Charlie' , venti , 40000 ) ) ;

Comparatore < Persona > salaryComparatore = nuovo Comparatore < Persona > ( ) {

// Ordina le persone in base allo stipendio

pubblico int confrontare ( Persona p1, Persona p2 ) {

ritorno Numero intero . confrontare ( p2. getSalary ( ) , pag.1. getSalary ( ) ) ;

}

} ;

Collezioni . ordinare ( persone, salaryComparator ) ; ritorno ordinare i valori

// Stampa un elenco ordinato di persone

per ( Persona persona : persone ) {

Sistema . fuori . println ( persona ) ;

}

}

}

classe Persona { // Definisci nome, età e stipendio

privato Corda nome ; // ambito all'interno di una classe
privato int età ;
privato int stipendio ;

pubblico Persona ( Corda nome, int età, int stipendio ) {
Questo . nome = nome ;
Questo . età = età ;
Questo . stipendio = stipendio ;
}
pubblico Corda getNome ( ) {
ritorno nome ;
}
pubblico int getAge ( ) {
ritorno età ;
}
pubblico int getSalary ( ) {
ritorno stipendio ;
}
pubblico Corda accordare ( ) {
ritorno nome + ' (età ' + età + ', stipendio $' + stipendio + ')' ;
}
}

Di seguito la descrizione del codice:

  • Una classe chiamata “ Persona ” con tre campi: “ nome ”, “ età ', E ' stipendio ' è considerato.
  • Successivamente, ordina una raccolta di oggetti Persona in base al loro stipendio in ordine decrescente.

Produzione

L'output mostra che gli stipendi sono stati ordinati in base all'ordine decrescente.

Conclusione

In Java, l'interfaccia Comparator è un potente strumento che consente agli utenti di ordinare gli oggetti in base a criteri personalizzati. Sovrascrive il metodo compare(), gli utenti possono definire la propria funzione di confronto e utilizzarla per ordinare raccolte di oggetti in vari modi. Questo articolo ha spiegato l'interfaccia di Comparator insieme a esempi pratici in Java.