嘿伙计们,我有这个数组列表
public static List<JSONObject> markerList = new ArrayList<JSONObject>();
我用for(循环(在其中放了一个JSONObject 使用来自服务器的 ID 以及一些信息 还有一个标记ID(谷歌地图。
如何检查数组中的这个对象是否具有特定的 id,以便不再插入它 因为这个对象将具有不同的值,如纬度和经度以及标记 id,但与 ArrayList 中的所有重复对象具有相同的驱动程序 ID,这真的在玩我的想法,我该如何检查它我试图在任何地方谷歌任何帮助的人<3
public static List<JSONObject> markerList = new ArrayList<JSONObject>();
public static void CreateMarker(JSONArray arrayList){
try {
Marker marker;
for (int counter = 0; counter < arrayList.length(); counter++) {
JSONObject json=arrayList.getJSONObject(counter);
int id = json.getInt("id");
int is_active = json.getInt("is_active");
double latitude = json.getDouble("latitude");
double longitude = json.getDouble("longitude");
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(latitude, longitude))
.title(String.valueOf(id))
.flat(true)
.anchor(0.5f, 1.0f)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.car_marker_dark));
marker = mGoogleMap.addMarker(markerOptions);
Log.e("MarkerList", "Marker id '" + marker.getId() + "' added to list.");
Log.e("MarkerList", String.valueOf(markerList));
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",id);
jsonObject.put("is_active",is_active);
jsonObject.put("latitude",latitude);
jsonObject.put("longitude",longitude);
jsonObject.put("Marker",marker);
markerList.add(jsonObject);
}
}catch (Exception e){
e.printStackTrace();
}
}
问题的一个可能的解决方案可能是使用HashMap
而不是ArrayList
键是id,值是JSONObject。这样,您可以在插入密钥之前检查HashMap
是否已包含您的密钥。