等于多个值Java

时间:2014-10-11 10:36:54

标签: java equals

我已经创建了一个Java类,我在其中模拟一个Polynome(它包含一个ArrayList<Pairs>,每对都有自己的系数和指数)。但现在我喜欢将两个Polynome与equals()方法(带Object)进行比较。

我知道我不能说这= =因为这只会比较Polynome引用。那么现在我想知道是否有比较两个Polynome值的简单方法,或者我只需要检查第一个Polynome的第一对与第二个Polynome的第一对等等?

2 个答案:

答案 0 :(得分:1)

您必须覆盖等于并检查Monomial集合中的每个Polynomial

提示:我有两个类 - Monomial,有自己的等号和hashCode,还有一个单独的Polynomial,它有SetMonomials和它自己的equals和hashCode。

答案 1 :(得分:1)

当且仅当系数和指数都相等时,您必须覆盖equals()类的Pair方法才能返回true。

如果您覆盖hashCode(),也应该覆盖equals()方法。虽然严格来说,当您使用ArrayList时,这不是强制性的,但最好始终一起覆盖equals()hashCode()

另请注意,因为您正在使用List,其中元素的顺序很重要,x 3 + 2x-1将不等于2x- 1 + x 3 ,这可能不是你想看到的。您应该将Pair个对象存储在Set中,因为他们equals()并不依赖于您向其添加元素的顺序。