В настоящее время я пишу метод compareTo для квадратичных функций в форме: ax ^ 2 + bx + c.
a, b, c - целые коэффициенты, которые передаются классу через конструктор.
В методе compareTo я должен сначала сравнить a-коэффициенты между двумя функциями, но если они равны, я сравниваю b-коэффициенты. Если b равны, я сравниваю c.
Метод, который я придумал для этого, оказался довольно уродливым:
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;
}
Так что мне было интересно, если у вас есть эти «многоуровневые» системы сравнений (например, сравнивать a перед b перед c), какой лучший способ реализовать их? Я не могу представить, чтобы написать такой метод, как мой, если бы вам пришлось перебрать более 10 переменных.