Tecnicamente sì, certo (non c'è niente nel linguaggio che lo vieta). Ma concettualmente no e non è neppure molto bello come "design".Originariamente inviato da identikit_man
Posso implementare l'interfaccia nella stessa classe Circuito; cioè nel seguente modo?
public class Circuito implements Comparator<Circuito>
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 ....
compare deve solo restituire: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)
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.
Corretto. Potresti comunque compattare con l'operatore condizionale ?: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; } } }