我制作了一个Java类,其中模拟了一个Polynome(它包含一个ArrayList<Pairs>,每对都有其自己的系数和指数)。但是现在我想用equals()方法(使用Object)比较两个Polynome。

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

最佳答案

当且仅当系数和指数相等时,您才必须重写equals()类的Pair方法以返回true。

如果覆盖hashCode(),则还应该覆盖equals()方法。尽管严格来讲,在使用ArrayList时这不是强制性的,但最好始终将equals()hashCode()一起重写。

还要注意,由于使用的是List,因此元素的顺序很重要,因此x3 + 2x-1不会等于2x-1 + x3,这可能不是您想要看到的。您应该将Pair对象存储在Set中,因为它们的equals()不依赖于向其添加元素的顺序。

关于java - 等于多个值Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26313721/

10-11 05:01