嘿伙计们,我有这个 ArrayList
public static List<JSONObject> markerList = new ArrayList<JSONObject>();
我用for(循环)将一个JSONObject放入其中 使用来自服务器的 ID 和一些信息 和一个标记 ID(Google map ..)
如何检查数组中的这个对象是否具有特定的 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
是否已包含您的 key 。
关于java - 在插入 ArrayList 之前检查 ArrayList 内的对象是否具有相同的 ID 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59587208/