Подтвердить что ты не робот

Как преобразовать SparseArray в ArrayList?

Я знаю, что это возможно:

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

Но в соответствии с android SparseArray<Object> более эффективен, поэтому мне интересно, можно ли преобразовать a SparseArray в Arraylist.

Очень ценю любой ввод.

4b9b3361

Ответ 1

Это получит только значения, игнорируя пробелы между индексами (как это делает существующее существующее решение карты):

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;
}

Ответ 2

ArrayMap выглядит как лучший выбор, доступный с API 19.