如下面的图片所示,latLng
等于latlng1
,但是indexOfValue()
返回不同的值。
这是为什么?
最佳答案
在内部,SparseArray
将值保留在Object
s数组中。在indexOfValue(E value)
方法中,将value
与数组元素by reference (not logical value)进行比较:
public int indexOfValue(E value) {
for (int i = 0; i < mSize; i++)
if (mValues[i] == value)
return i;
return -1;
}
变量
latLng
和latlng1
引用内存中的不同对象,尽管它们在逻辑上是相等的。