Originariamente inviato da maurizio2
ok Comparable e il suo utilizzo l'ho ben compreso,
quindi posso dedurre che Comparator serve a
generalizzare il cocetto di confronto tra due
oggetti(minore o maggiore o uguale).

Comparable e' un interfaccia che definisce un
unico metodo (compareTo()).

Mentre in Comparator i metodi sono due:
boolean equals();//se due oggetti sono uguali
int compare();//confronto di tipo alfabetico

Ma essendo Comparator un'interfaccia
non deve la classe che lo implementa
ridefinire entrambi i metodi??

Quindi il tuo esempio dovrebbe suscitare
una protesta da parte del compilatore.
Cmq non ho provato ancora quindi cio' che
ho detto e' del tutto opinabile.
:master:
Hai perfettamente ragione. Mi sono scordato di implementare il metodo equals() e ciò susciterà senza dubbio delle sonore proteste da parte del compilatore. La definizione del metodo equals(), comunque, è molto più sempilce del previsto:
codice:
public class MioOggetto implements Comparator {
   ...
   public boolean equals(Object o) {
      boolean risultato = false;
      if ( o instanceof MioOggetto) {
         MioOggetto mo = (MioOggetto) o;
         int [] dato = mo.getDato();
         risultato = (dato[0] == mioDato[0]) && (dato[1] == mioDato[1]);
      }
      return risultato;
   }
}
Credo che si potesse anche ricorrere al metodo equals() di Object, ma non ne sono proprio sicuro (basta provare):
codice:
public boolean equals(Object o) {
   return super.equals(o);
}
Ciao.