带有自定义哈希键的LruCache

时间:2014-05-26 12:03:49

标签: android caching hash bitmap hashcode

我使用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();
    }
}

1 个答案:

答案 0 :(得分:0)

使用复合String作为密钥是一种有效且低开销的解决方案。

  

TABLE_NAME_TAG + ID为键