为了账号安全,请及时绑定邮箱和手机立即绑定

等于数组的方法实现 - Java

等于数组的方法实现 - Java

梵蒂冈之花 2022-09-14 16:09:22
我很惊讶这种方法有效。即使它正在使用的旧形式不再存在,因为我已经覆盖了它..?equals.equals我的意思是,如果你看一下代码,比较我正在使用的两个数组元素。.equals但。。如果我覆盖了 equals 方法,难道不会只使用我的覆盖方法吗?我有点困惑,我真的非常感谢一些关于它如何工作的解释。.equalspublic boolean equals(Object other) {    if (other instanceof arrayClass) {        arrayClass that = (arrayClass) other;        if (this.number == that.number) {            for (int i = 0; i < this.number; i++) {                if (this.elements[i].equals(that.elements[i])) {                }                else {                    return false;                }            }            return true;        }        else {            return false;        }    }    else {        return false;    }}注意:表示数组长度。number提前致谢!
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

我很惊讶这个等于方法有效。即使它使用.equals,它不再以旧形式存在,因为我已经覆盖了它

您已经重写了类的方法。在你的实现中,你正在调用数组的元素,这意味着你正在调用类的方法,它是数组的元素类型。例如,如果 是 ,则调用 的 。equalsarrayClassequalsequalsequalselementselementsString[]elements[i].equals()Stringequals



查看完整回答
反对 回复 2022-09-14
?
慕容708150

TA贡献1831条经验 获得超4个赞

for 循环中的等于调用不会调用您的等于实现。您的实现位于 Array 类之上,for 循环中的等于 将调用您存储在数组中的任何类类型的等于实现。


此外,这段代码未进行优化。您可以删除 for 循环中的空块:


for(int i = 0; i < this.number; i++){

    if (!this.elements[i].equals(that.elements[i])) {

          return false;

    }

}

return true;


查看完整回答
反对 回复 2022-09-14
  • 2 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信