Originariamente inviato da identikit_man
Posso implementare l'interfaccia nella stessa classe Circuito; cioè nel seguente modo?

public class Circuito implements Comparator<Circuito>
Tecnicamente sì, certo (non c'è niente nel linguaggio che lo vieta). Ma concettualmente no e non è neppure molto bello come "design".
Innanzitutto di Comparator per un certo tipo ne puoi implementare quanti ne vuoi e il fatto di fissarne uno sullo stesso tipo che stai comparando ... non è certo una buona cosa.
Inoltre, tu devi passare al sort una implementazione di Comparator e in questo caso dovresti passare un oggetto Circuito ... quale? Passi uno qualunque di quelli che hai già? O peggio ... ne istanzi uno nuovo? Vedi che non ha molto senso ....

Originariamente inviato da identikit_man
E poi il secondo dubbio riguarda il funzionamento; del metodo ho visto che restituisce un intero,ma poi l'ordinamento viene fatto in base a quest'intero???

public int compare(Circuito c1,Circuito c2)
compare deve solo restituire:
valore < 0 se c1 è minore di c2
valore 0 se c1 è uguale a c2
valore > 0 se c1 è maggiore di c2

Il sort userà questa informazione per sapere come spostare i due elementi man mano che fa varie combinazioni di confronti.


Originariamente inviato da identikit_man
codice:
public int compare(Circuito c1,Circuito c2)
{
	if(c1.getLunghezza()>c2.getLunghezza())
	{
		return 1;
	}
	else
	{
		if(c1.getLunghezza()<c2.getLunghezza())
		{
			return -1;
		}
		else
		{
			return 0;
		}
	}
}
Corretto. Potresti comunque compattare con l'operatore condizionale ?: