例如:
List<Overlay> overlays = mapView.getOverlays();
// for (Overlay overlay : overlays) {
// if (overlay instanceof MyLocationOverlay
// | overlay instanceof MyPoiOverlay) {
// } else {
// overlays.remove(overlay);
// }
// } 直接remove并发异常
可改为:
List<Overlay> overlays = mapView.getOverlays();
Overlay overlayToDel = null;
for (Overlay overlay : overlays) {
if (overlay instanceof MyLocationOverlay | overlay instanceof MyPoiOverlay) {
} else {
overlayToDel = overlay;
}
}
overlays.remove(overlayToDel);
或:
使用CopyOnWriteArrayList, CopyOnWriteArraySet实现,
- List<String> list = new CopyOnWriteArrayList<String>();
- list.add("Alpha");
- list.add("Beta");
- list.add("Cat");
- list.add("Dog");
- for (String s : list) {
- if (!"".equals(s)) {
- list.remove(s);
- }
- }