我使用LruCache在我的Android应用中缓存了几个位图。但是因为我根据来自数据库的多个数据表中的数据加载了这些位图。例如:对象A存储在表A中并具有图像,而对象B存储在表B中并具有另一图像。
对象A和B的ID可能相同,因为它们存储在不同的表中。因此,我还有两个(或更多)LruCache实例,我认为这不是那么好。所以我想将所有图像存储在一个LruCache中,但是我需要一个能够处理同一ID的多个出现的密钥。我的猜测是写一个关键课程。有什么最好的做法吗?哈希键怎么样?
private LruCache<MyKey, Bitmap> cache;
class MyKey {
private final String className;
private final int key;
public MyKey(Object object, int key) {
className = object.getClass().getCanonicalName();
this.key = key;
}
@Override
public int hashCode() {
// TODO How to implement?
return super.hashCode();
}
}
答案 0 :(得分:0)
使用复合String作为密钥是一种有效且低开销的解决方案。
TABLE_NAME_TAG + ID为键