我制作了一个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/