如何创建一个比较类的两个对象数组的equals方法?

时间:2013-09-03 05:47:53

标签: java arrays class object boolean

我正在尝试创建一个比较两个对象的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数组,我该怎么做呢?

例如,我想说我想比较长度和临时长度(也就是Obj的长度),我该怎么做?我知道它会像(temp.length == arr.length)那样但是当我通过arr.equals(obj)传递它时如何访问arr?

编辑:只是澄清一下,假设对象不是简单的数组。因此,例如,A类可以有一个Name,一个Type(两个字符串),也可能有一个Quantity(一个int),所以我不能简单地比较它们就像它们是两个正常数组一样。 / p>

谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

class A

中写一个等于mwthod
public class A {
...
//Override equals method.

}

现在,如果你想比较2个class A数组,你只需使用java.utils.Arrays.equals(A a1[], A a2[]);

你必须覆盖class A中的equals方法.coz java.utils.Arrays.equals内部使用A类等于。

这是example,请仔细阅读。