gpt4 book ai didi

java - 即使使用迭代器,添加到我的数组列表也会导致 ConcurrentModificationException

转载 作者:行者123 更新时间:2023-12-01 22:21:44 25 4
gpt4 key购买 nike

在添加之前,每个循环都可以正常工作,但删除则不然,所以我使用了迭代器。现在,我添加到 arrayList 的每第三个项目都会给我一个 ConcurrentModificationException 。问题出在哪里?

private ArrayList<Marker> mMarkers它在 onCreate 中实例化

这里我有一个关于我的 onCreateView 的 ListView

mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
final Events event = mEventsParseQueryAdapter.getItem(position);

GoogleMap googleMap = mSupportMapFragment.getMap();

if (mMarkers.isEmpty()) {
mMarkers.add(googleMap.addMarker(new MarkerOptions()
.position(getLatLngFromGeoPoint(event.getLocation()))));
} else {
Iterator<Marker> markerIterator = mMarkers.iterator();

//noinspection WhileLoopReplaceableByForEach
while (markerIterator.hasNext()) {
Marker marker = markerIterator.next();
if (marker.getPosition().equals(getLatLngFromGeoPoint(event.getLocation()))) {
return false;
} else {
mMarkers.add(googleMap.addMarker(new MarkerOptions()
.position(getLatLngFromGeoPoint(event.getLocation()))));
}
}
}
return true;
}
});

这是我在点击监听器上的标记,它会弹出一个对话框,并有一个删除标记的选项

googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(final Marker marker) {

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), CONSTANT.ZOOM_LEVEL));

AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
dialog.setNegativeButton(R.string.checkout, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mMarkers.remove(marker);
marker.remove();
}
}).setPositiveButton(R.string.frames, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.create().show();

return true;
}
});

最佳答案

无论使用 for-each 还是迭代器,都无法在迭代列表时修改列表。在异常页面上了解更多信息:http://docs.oracle.com/javase/7/docs/api/java/util/ConcurrentModificationException.html

关于java - 即使使用迭代器,添加到我的数组列表也会导致 ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com