我知道这是可能的:Mapmap=newHashMap();...ListarrayList=newArrayList(map.values());但是根据androidSparseArray效率更高,因此,我想知道是否可以转换SparseArray至Arraylist.非常感谢任何意见。 最佳答案 这将只获取值,忽略索引之间的差距(就像您现有的Map解决方案所做的那样):publicstaticListasList(SparseArraysparseArray){if(sparseArray==null)returnnull;Lis
我想知道SparseArray和ArrayList的性能和效率,哪个更好用。我不明白何时使用SparseArray以及何时使用ArrayList? 最佳答案 SparseArray的目的是在您有一个有很多空白的列表时节省内存。如果您只有10个项目,并且索引它们的数字范围从0到1000,那么一个ArrayList将有很多null条目,这将是非常浪费的。SparseArray将在内部使用数据结构来避免该问题。这种情况下的替代方案是HashMap,如果您有很多项目,它比SparseArray更好。Theimplementationisno
我正在使用HashMap实现位图缓存并在Eclipse中收到以下警告:UsenewSparseArray(...)insteadforbetterperformance.我以前从没听说过这个类,但是检查它似乎没有containsKey()我在从缓存中检索位图时调用的方法,以检查它是否存在于缓存中,如果不存在,则添加它。关于检查key是否已存在的最佳方法的任何想法?我想我可以更改代码以使用此重载并检查null吗?Bitmapbitmap=cache.get(key,null); 最佳答案 你可以使用:Bitmapbitmap=cach
我能想到为什么带有整数键的HashMaps比SparseArrays好很多的几个原因:SparseArray的Android文档说“它通常比传统的HashMap慢”。如果您使用HashMaps而不是SparseArrays编写代码,您的代码将与Map的其他实现一起使用,您将能够使用所有设计的JavaAPI用于map。如果您使用HashMaps而不是SparseArrays编写代码,您的代码将可以在非Android项目中运行。Map会覆盖equals()和hashCode()而SparseArray不会。然而,每当我尝试在Android项目中使用带有整数键的HashMap时,Intell
SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明SparseArraysparseArray=newSparseArray();//增加元素,append方式sparseArray.append(0,"myValue");//增加元素,put方式sparseArray.put(1,"myValue");//删除元素,二者等同sparseArray.remove(1);sparseArray.delete(1);//修改元素,put或者append相同的key值即可sparseArray.put(1,"newVa
SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明SparseArraysparseArray=newSparseArray();//增加元素,append方式sparseArray.append(0,"myValue");//增加元素,put方式sparseArray.put(1,"myValue");//删除元素,二者等同sparseArray.remove(1);sparseArray.delete(1);//修改元素,put或者append相同的key值即可sparseArray.put(1,"newVa
SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明SparseArraysparseArray=newSparseArray();//增加元素,append方式sparseArray.append(0,"myValue");//增加元素,put方式sparseArray.put(1,"myValue");//删除元素,二者等同sparseArray.remove(1);sparseArray.delete(1);//修改元素,put或者append相同的key值即可sparseArray.put(1,"newVa
SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明SparseArraysparseArray=newSparseArray();//增加元素,append方式sparseArray.append(0,"myValue");//增加元素,put方式sparseArray.put(1,"myValue");//删除元素,二者等同sparseArray.remove(1);sparseArray.delete(1);//修改元素,put或者append相同的key值即可sparseArray.put(1,"newVa