我有一个很长的、可变的Marker
s 和Polyline
s 列表,我从我的服务器获取。在某些情况下,Marker
s 必须更改其图标,Polyline
s 必须更改其颜色。
我的对象有 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 HashMap
s。
有没有其他方法可以在不使用HashMap
s、SparseArray
s 或类似的东西的情况下实现这种行为?