0

我正在尝试创建一个比较两个对象的 equals 方法。问题是,我对这些东西有点陌生,所以我会尽量简单地解释我的目标。

public class A {
...
}

public class B {
private A[] arr = new A[10];

public boolean equals(A[] temp) {
//compare
}
}

假设上面的代码是我所拥有的摘要。现在,假设我有:arr.equals(Obj) Obj 是另一个 A[] 对象。现在在我的 equals 语句中,我想引用原始arr数组,我该怎么做呢?

例如,假设我想将 arr 的长度与 temp 的长度(又名 Obj 的长度)进行比较,我该怎么做?我知道它会类似于 (temp.length == arr.length) 但是当我通过 do 传递它时如何访问 arr arr.equals(obj)

编辑:为了澄清,假设对象不是简单的数组。例如,A 类可能有一个名称、一个类型(两个字符串)和一个数量(一个 int),所以我不能像两个普通数组一样简单地比较它们。

谢谢!

4

3 回答 3

0

您可以使用 java.util.Arrays.equals(Object[] a, Object[] a2) 来测试两个指定的 Objects 数组是否彼此相等

于 2013-09-03T05:51:43.763 回答
0

使用关键字this,它始终代表您将方法应用到的对象(紧接在点之前)。例如:

    public boolean equals(A[] temp) {
        return this.length == temp.length ;
    }

现在,在您的代码的特定情况下,您不是将方法定义equals为 class 的一部分A,而是将B其定义为实例包含的类arr。然后,解决方案是:

    public boolean equals(A[] temp) {
        return this.arr.length == temp.length ;
    }
于 2013-09-03T05:50:08.380 回答
0

写一个等于 mwthod 在你的class A

public class A {
...
//Override equals method.

}

现在,如果您想比较 2 个数组,class A您可以简单地使用java.utils.Arrays.equals(A a1[], A a2[]);

您必须在class A因为 java.utils.Arrays.equals 内部使用类 A 的 equals 覆盖 equals 方法。

这是一个例子,通过它。

于 2013-09-03T05:56:48.000 回答