稀疏数组,检查密钥是否存在

2022-09-01 02:26:57

我正在使用 实现位图缓存,并在 Eclipse 中收到以下警告:HashMap<Integer, Bitmap>

使用新的SparseArray(...)代替以获得更好的性能。

我以前从未听说过这个类,但是检查它似乎没有一个方法,我在从缓存中检索位图时调用该方法以检查它是否存在于缓存中,如果它不存在,则添加它。containsKey()

关于检查密钥是否已经存在的最佳方法的任何想法?

我想我可以更改代码以使用此重载并检查空值?

Bitmap bitmap = cache.get(key, null); 

答案 1

您可以使用:

Bitmap bitmap = cache.get(key, null); 

但要明白,这与 get(key) 相同

Bitmap bitmap = cache.get(key); 

最好的使用方法是提供一个通用的默认大小写,当找不到密钥时,它是一个有效的替代项get(key, default)

但是没有充分的理由不将其用作 的快速替代品。if(get(key) != null)contains()


答案 2

因此,您的值在各种情况下都可以为空,我建议使用这里是 indexOfKey(int 键)引用。indexOfKey(int key)

然后只需检查负返回值

if(mySparseArray.indexOfKey(int) < 0) {
   //Item does not exist. Do something relevant 
}