[英]How to convert a SparseArray to ArrayList?
我知道这是可能的:
Map<Integer, Object> map = new HashMap<Integer, Object>();
...
List<Object> arrayList = new ArrayList<Object>(map.values());
但是根据 android 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;
}
ArrayMap看起来是一个更好的选择,它自 API 19 起可用。
科特林版本:
fun <T> SparseArray<T>.values(): List<T> {
val list = ArrayList<T>()
forEach { _, value ->
list.add(value)
}
return list.toList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.