Attualmente sto scrivendo un metodo compareTo per le funzioni quadratiche nella forma: ax^2 + bx + c.Come si implementano metodi di confronto in modo pulito?
a, b, c sono coefficienti interi che vengono passati alla classe tramite il costruttore.
Nel metodo compareTo, dovrei prima confrontare gli a-coefficienti tra due funzioni, ma se sono uguali, confronto i coefficienti b. Se le b sono uguali, confronto le c.
Il metodo che mi è venuta per questo ha finito per essere abbastanza brutto:
public int compareTo(QuadraticFunction other)
{
if (a > other.a)
return 1;
else if (a < other.a)
return -1;
else if (b > other.b)
return 1;
else if (b < other.b)
return -1;
else if (c > other.c)
return 1;
else if (c < other.c)
return -1;
else
return 0;
}
Quindi mi chiedevo, se si dispone di questi sistemi "a più livelli" di confronto (come confrontare una della prima di B di prima c di), qual è il modo migliore per implementarli? Non riesco a immaginare di scrivere un metodo come il mio se devi passare attraverso 10+ variabili.
Grazie per l'aiuto! – CowZow
Funziona solo se tutte le variabili hanno lo stesso tipo. –
@LouisWasserman: È corretto. Ma penso che sia abbastanza sicuro assumere che si rappresenterebbero coefficienti polinomiali con tipi omogenei. –