检查两个从属数组中是否存在两个数字 - Java

Check if two numbers exist in two dependent arrays - Java

我有两个双精度值数组,称为 lat2[] 和 lon2[]。我在那里存储了特定的纬度和经度值。我可以将这些值作为简单的双精度值获取。我的问题是如何找到数组中是否存在这两个双打(以检查简单地单击了哪个标记)。这是我到目前为止所做的,但似乎没有用:

@Override
public boolean onMarkerClick(Marker marker) {
    markerLatLng = marker.getPosition();
    markerLat = markerLatLng.latitude;
    markerLng = markerLatLng.longitude;
    for (int i = 0; i < lat2.length; i++) {
        if (markerLat == lon2[i]) {
            for (int j = 0; j < lon2.length; j++) {
                if (markerLng == lon2[j]) {
                    String title = marker.getTitle();
                    Log.e("TAG", " " + title);
                }
            }
        }
    }
    return true;
}

如果我理解了你的数据结构,你的 for 循环可能有问题。

如果将纬度和经度存储在两个数组中,我想位置 n 中的一个点由经度[n] 和纬度[n] 定义。

如果这是您存储积分的方式,那么您需要更新代码:

@Override
public boolean onMarkerClick(Marker marker) {
    int markerLat = marker.getPosition().latitude;
    int markerLng = marker.getPosition().longitude;
    for (int i = 0; i < lat2.length; i++) {
        if (markerLat == lat2[i] && markerLng == lon2[j]) {
            String title = marker.getTitle();
            Log.e("TAG", " " + title);               
        }
    }
    return true;
}

请不要使用全局变量。我编辑了您的代码以定义方法本地的 markerLat 和 markerLng(我不知道 int 是否是正确的类型)。

从 lat2、log2 数组创建一个列表,例如 ArrayList,并检查数字是否包含如下内容:

List lat = new ArrayList(lat2);
List lon = new ArrayList(lon2);

if (lat.contains(markerLat) && lon.contains(markerLng)){
            String title = marker.getTitle();
            Log.e("TAG", " " + title);   
}