0

2 つのオブジェクトを比較する equals メソッドを作成しようとしています。問題は、私はこのようなことに少し慣れていないので、私の目標をできるだけ簡単に説明しようとすることです.

public class A {
...
}

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

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

上記のコードが私が持っているものの要約であると仮定します。Objarr.equals(Obj) は別の A[] オブジェクトです。equals ステートメントで、元のarr配列を参照したいのですが、どうすればそれを行うことができますか?

たとえば、arr の長さと temp の長さ (別名 Obj の長さ) を比較したいとします。(temp.length == arr.length) のようなものになることはわかっていますが、次のようにして渡すときに arr にアクセスするにはどうすればよいarr.equals(obj)ですか?

編集: 明確にするために、オブジェクトは単純な配列ではないと仮定します。たとえば、クラス A は名前、タイプ (両方の文字列)、および場合によっては数量 (int) を持つことができるため、2 つの通常の配列のように単純に比較することはできません。

ありがとう!

4

3 に答える 3

0

メソッドを適用するオブジェクトを常に表すキーワード を使用しthisます (ドットの直前)。例えば:

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

コードの特定のケースでは、 methodequalsを class の一部として定義するのではなく、インスタンスが を含むAクラスの一部として定義しています。次に、解決策は次のようになります。Barr

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

オブジェクトの指定された 2 つの配列が互いに等しいかどうかをテストする java.util.Arrays.equals(Object[] a, Object[] a2) を使用できます。

于 2013-09-03T05:51:43.763 に答える