如何将稀疏数组转换为数组列表?
我知道这是可能的:
Map<Integer, Object> map = new HashMap<Integer, Object>();
...
List<Object> arrayList = new ArrayList<Object>(map.values());
但是根据Android更有效率,因此,我想知道是否有可能将a转换为.SparseArray<Object>
SparseArray
Arraylist
非常感谢任何输入。
我知道这是可能的:
Map<Integer, Object> map = new HashMap<Integer, Object>();
...
List<Object> arrayList = new ArrayList<Object>(map.values());
但是根据Android更有效率,因此,我想知道是否有可能将a转换为.SparseArray<Object>
SparseArray
Arraylist
非常感谢任何输入。
这将只获取值,忽略索引之间的差距(就像您现有的 Map 解决方案所做的那样):
public static <C> List<C> asList(SparseArray<C> sparseArray) {
if (sparseArray == null) return null;
List<C> arrayList = new ArrayList<C>(sparseArray.size());
for (int i = 0; i < sparseArray.size(); i++)
arrayList.add(sparseArray.valueAt(i));
return arrayList;
}