2016-11-02 6 views

答えて

0

あなたのコードをもっと見ることなく、私の推測では、それらのlat/lngの値は同じですが、同じオブジェクトではありません。 Google APIs the equal methodのLatLngオブジェクトを使用すると、同じオブジェクトではなく、緯度と経度の値が比較されます。

したがって、sparsearrayには1つのオブジェクトしか含まれておらず、もう1つはsparsearrayに存在しないため-1を返します。

1

内部的には、SparseArrayは値をObjectsの配列で保持します。

public int indexOfValue(E value) { 
    for (int i = 0; i < mSize; i++) 
     if (mValues[i] == value) 
      return i; 

    return -1; 
} 

変数latLng、それらが論理的に等しくしているにもかかわらずlatlng1は、メモリ内の別のオブジェクトを参照:indexOfValue(E value)方法でvalueは、配列要素by reference (not logical value)と比較されます。

関連する問題