gpt4 book ai didi

java - 你如何干净地实现 compareTo 方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:39 28 4
gpt4 key购买 nike

目前我正在为以下形式的二次函数编写 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 个以上的变量,我无法想象编写像我这样的方法。

最佳答案

对于任意数量的系数(所有类型相同),您应该将它们存储在 List(或类似的东西)中,而不是单独命名的成员变量。这允许您将示例代码转换为迭代。

关于java - 你如何干净地实现 compareTo 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872516/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com