Java SparseArray indexOfValue(对象)为相等的变量返回不同的结果
正如您在图片中所看到的那样,Java SparseArray indexOfValue(对象)为相等的变量返回不同的结果,java,android,android-sparsearray,Java,Android,Android Sparsearray,正如您在图片中所看到的那样,latLng等于latlng1,但indexOfValue()返回不同的值 为什么会这样?在没有看到更多代码的情况下,我猜它们的lat/lng值是相同的,但是它们不是相同的对象。如果在中使用LatLng对象,则仅比较lat和long值,而不是它们是同一对象 因此sparsearray只包含一个对象并返回-1,因为另一个对象在sparsearray中不存在 在没有看到更多代码的情况下,我猜它们的lat/lng值是相同的,但是它们不是相同的对象。如果在中使用LatLng
latLng
等于latlng1
,但indexOfValue()
返回不同的值
为什么会这样?在没有看到更多代码的情况下,我猜它们的lat/lng值是相同的,但是它们不是相同的对象。如果在中使用LatLng对象,则仅比较lat和long值,而不是它们是同一对象
因此sparsearray只包含一个对象并返回-1,因为另一个对象在sparsearray中不存在 在没有看到更多代码的情况下,我猜它们的lat/lng值是相同的,但是它们不是相同的对象。如果在中使用LatLng对象,则仅比较lat和long值,而不是它们是同一对象
因此sparsearray只包含一个对象并返回-1,因为另一个对象在sparsearray中不存在 内部,
SparseArray
将值保存在数组中。在该方法中,值
与数组元素进行比较:
public int indexOfValue(E值){
对于(int i=0;i
变量
latLng
和latlng1
引用内存中的不同对象,尽管它们在逻辑上是相等的。在内部,SparseArray
将值保留在数组中。在该方法中,值
与数组元素进行比较:
public int indexOfValue(E值){
对于(int i=0;i
变量latLng
和latlng1
引用内存中的不同对象,尽管它们在逻辑上是相等的
public int indexOfValue(E value) {
for (int i = 0; i < mSize; i++)
if (mValues[i] == value)
return i;
return -1;
}