1

Java で複雑なオブジェクトを作成し、equals メソッドを使用して比較しています。

これでよろしいですか、それともオブジェクトに名前または ID を付けて、オブジェクトの名前/ID を比較することをお勧めしますか?

4

2 に答える 2

6

equals()メソッドを使用する必要があります。名前や ID の比較を同等にしたい場合は、equals()メソッド内で行います。

これは、 Java が等価性を判断するデフォルトの方法です。

また、この質問に対する回答のいくつかを見てください: Java equals() メソッドの癖をオーバーライドする

と の間には関係がequals()ありhashcode()ます。これらはどちらもコレクションで使用されます。

于 2012-08-05T20:37:22.767 に答える
3

equalsから継承されたデフォルトはObject#equals()比較参照です。つまり、2 つのオブジェクトが同一 (メモリ内の同じオブジェクト) の場合は true を返します。

2 つのオブジェクトが同じ特性を共有している場合に equals が true を返すようにするには、それらが異なるオブジェクトであっても、equals をオーバーライドしてこれらの特性を比較する必要があります。

equals をオーバーライドする場合は、hashcode もオーバーライドする必要があります

于 2012-08-05T20:38:01.957 に答える