我有一个很长的、可变的Markers 和Polylines 列表,我从我的服务器获取。在某些情况下,Markers 必须更改其图标,Polylines 必须更改其颜色。
我的对象有 id,所以我应该能够知道我必须更新哪个折线/标记。但是,Markers 和 Polylines 没有setId()orgetId()方法,它们会在服务器请求时动态更新(和添加)。
我考虑过使用 aHashMap<Integer, Marker>和 aHashMap<Integer, Polyline>来了解应该删除然后添加哪些项目。我想过这个:
- 我收到一个项目。我得到了它的 ID。
- 我查询正确
HashMap的具有相同 ID 的项目。 - 如果 HashMap 不返回 null,我调用
Marker.remove()orPolyline.remove(),然后从HashMap - 现在
hashMap.get(id)无论如何都应该返回 null,所以我Polyline在Marker将GoogleMap项目添加到HashMap.
但是在我开始实施之前,我想知道是否有任何方法可以不涉及使用 Giant HashMaps。
有没有其他方法可以在不使用HashMaps、SparseArrays 或类似的东西的情况下实现这种行为?