我创建了一个 Java 类,在其中模拟一个 Polynome(它包含一个 ArrayList<Pairs>
,每对都有自己的系数和指数)。但现在我喜欢将两个 Polynome 与 equals()
进行比较方法(带有 Object
)。
我知道我不能说 this == that 因为这只会比较 Polynome 引用。所以现在我想知道是否有一种简单的方法来比较两个 Polynome 的值,或者我只需要检查第一个 Polynome 的第一对到第二个 Polynome 的第一对等?
最佳答案
您必须重写 Pair
类的 equals()
方法,当且仅当系数和指数相等时才返回 true。
如果您覆盖 equals()
,您还应该覆盖 hashCode()
方法。尽管严格来说,在使用 ArrayList 时这不是强制性的,但最好始终重写 equals()
和 hashCode()
在一起。
另请注意,由于您使用的是 List
,其中元素的顺序很重要,因此 x3+2x-1 不会等于 2x-1 +x3,这可能不是您想要看到的。您应该将 Pair
对象存储在 Set
中,因为它们的 equals()
不依赖于您添加元素的顺序给他们。
关于java - Java 等于多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26313721/