Sobes.tech
Junior — Middle

Spiega cosa si intende per interfaccia Comparator nel linguaggio Java.

sobes.tech AI

Risposta dell'AI

L'interfaccia Comparator in Java viene utilizzata per definire l'ordine degli oggetti quando l'ordine naturale (tramite Comparable) non è adatto o assente. Contiene il metodo compare(T o1, T o2), che confronta due oggetti e restituisce:

  • un numero negativo se o1 è minore di o2
  • zero se sono uguali
  • un numero positivo se o1 è maggiore di o2

Questo permette di ordinare le collezioni secondo criteri diversi senza modificare le classi degli oggetti.

Esempio di utilizzo:

List<String> nomi = Arrays.asList("Anna", "John", "Bob");

// Ordinamento per lunghezza della stringa
Collections.sort(nomi, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return Integer.compare(s1.length(), s2.length());
    }
});

// Oppure con espressione lambda
Collections.sort(nomi, (s1, s2) -> s1.length() - s2.length());