我在Android中实现了一个存储对象的标准LRUCache.每个键都是与存储的Object关联的唯一ObjectId.我的问题是从缓存中检索Object的唯一方法是ObjectId(没有迭代器).实现getAll()方法的最佳方法是什么?另一种选择是将所有ObjectIds存储在某个列表的列表中,因此我可以迭代列表并获取所有对象 - 但是保存所有ObjectIds的最佳方法是什么?
谢谢!
如果您正在使用(或扩展)LruCache
Android提供的,它有一个snapshot
方法可以返回键(您的ObjectIds)和值(您的对象)的映射.你可以这样做:
Map<ObjectIds, Object> snapshot = lruCache.snapshot(); for (ObjectIds id : snapshot.keySet()) { Object myObject = lruCache.get(id); }
如果您没有使用Android LruCache
,那么我认为这取决于您的实施.(我也很好奇是什么促使你实现自己的,而不是子类化提供的!)