java - 如何将 SparseArray 转换为 ArrayList?

标签 java android

我知道这是可能的:

Map<Integer, Object> map = new HashMap<Integer, Object>();
...
List<Object> arrayList = new ArrayList<Object>(map.values());

但是根据android SparseArray<Object>效率更高,因此,我想知道是否可以转换 SparseArrayArraylist .

非常感谢任何意见。

最佳答案

这将只获取值,忽略索引之间的差距(就像您现有的 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;
}

关于java - 如何将 SparseArray 转换为 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008115/

相关文章:

java - 计算小时加一

android - 为什么服务不应该启动 Activity ?

android - 如何在用户触摸屏幕时停止 OnTouchListener? <机器人>

java - 抛出任何异常是否会导致GAE实例重新启动

java - 通过蓝牙android接收字符串(没有换行或回车)

java - SwingWorker 是否必须是嵌套类?

Java泛型问题

android - 在android中创建自定义LockScreen

android - 检索 Android 中的默认日历 ID

android - 销毁 View (布局)