目前我正在以二进制函数的形式编写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;
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道,如果你有这些"分层"的比较系统(比如在c之前比较a之前的b),那么实现它们的最佳方法是什么?如果你不得不经历10多个变量,我无法想象会像我一样编写一个方法.