私は a を使用してSparseIntArray
いますが、この動作に困惑しています:
public static SparseIntArray getArray()
{
SparseIntArray result = new SparseIntArray();
result.append(0, 99);
result.append(1, 988);
result.append(2, 636);
return result;
}
public static void testArray()
{
SparseIntArray first = getArray();
SparseIntArray second = getArray();
if( first.equals(second) )
{
Log.v(TAG,"first "+first.toString()+" == second "+second.toString());
}
else
{
Log.v(TAG,"first "+first.toString()+" != second "+second.toString());
}
}
出力:
11-06 14:53:15.011: V/fileName(6709): first {0=99, 1=988, 2=636} != second {0=99, 1=988, 2=636}
2 つのオブジェクト間で == を使用するとオブジェクト アドレスが比較されることはわかっていますが、この場合は異なりますが、ここでは使用してSparseIntArray.equals(Object other)
おり、意図した結果は予期しないものではありません。
独自の比較メソッドをロールバックできると確信していますが、それはばかげているように聞こえます。Object.equals(Object other)
依存できない場合、基本クラスのメソッドを使用する意味は何ですか?
誰かが間違いを指摘できますか?