java - Java 等于多个值

标签 java equals

我创建了一个 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/

相关文章:

java - 拒绝后无法清除表单输入

java - 对于 HashMap,如果我只按键搜索,实现 hashCode() 对值有帮助吗?

java - 一种扩展可实例化类并添加值组件同时保留相等契约的方法

java - 为泛型类型调用重载方法 'equals'

java - ArrayList 删除方法不起作用?

java - 在 Linux 上编译具有多个类的 Java 程序

java - 2 个互相搜索栏 (android)

java - Android - 如何解析 JSONObject 和 JSONArrays

java - 如何检测 equals() 和 hashCode() 是否与类的字段不同步?

java - 对集合使用 hashCode() 和 equals() 的多个替代方案