Post

Visualizzazione dei post con l'etichetta confrontare oggetti

Java Comparable

DOMANDA: Che differenza c'è in Java tra il Comparator e Comparable? RIPOSTA: La differenza è sottile. Il Comparator ( java.util.Comparator ) ci permette di confrontare due oggetti differenti, Comparable ( java.lang.Comparable ) invece confronta se stesso con un altro oggetto. Entrambe le interfacce consentono di confrontare due oggetti non misurabili. Ad esempio è facile dire che 1 è minore di 10, ma che significa confrontare due Impiegati? Potremmo intendere un paragone in termini di età anagrafica, oppure di ruolo gerarchico o ancora di stipendio. Per definire qual è il termine di paragone dobbiamo implementare un Comparator o un Comparable . Ieri abbiamo visto cos'è e come si usa un Comparator , per cui oggi affrontiamo lo stesso problema con la classe Comparable . La classe Impiegato (che implementa Comparable ): package comparable; public class Impiegato implements Comparable<Impiegato> {    private String nome;    private i

Java Comparator

DOMANDA: Cos'è e come funziona il Comparator in Java? RISPOSTA: Il Comparator è un'interfaccia Java ( java.util.Comparator ) che permette di confrontare due oggetti non misurabili in modo naturale.  Bisogna precisare che Comparator è capace di confrontare due oggetti differenti mentre Comparable   confronta l' istanza stessa con un altro oggetto. Facciamo un esempio creando un comparatore di voti scolastici. Creiamo inizialmente una Enum   che rappresenta tutti i voti possibili: package comparator; public enum VotiScuola {     INSUFFICIENTE (4),     MEDIOCRE (5),     SUFFICIENTE (6),     BUONO (7),     OTTIMO (8),     ECCELLENTE (9);     private final int votoNum;     private VotiScuola( int votoNum){       this .votoNum = votoNum;    }     public int getVoto() {       return votoNum;    } } Creiamo un Comparator che confronta i differenti voti: package comparator; public class VotiScuolaComparator implements