Разница между SparseArray Vs ArrayList?

Я хочу знать производительность и эффективность SparseArray и ArrayList, и который лучше использовать. Я не могу понять, когда использовать SparseArray и когда ArrayList?

Ответы

Ответ 1

Цель SparseArray состоит в том, чтобы сохранить память, если у вас есть список, в котором есть много пробелов. Если у вас есть только 10 элементов, а числа, которые их индексируют, варьируются от 0 до 1000, тогда ArrayList будет иметь много записей null, и это будет довольно расточительно. A SparseArray будет использовать внутренние структуры данных, чтобы избежать этой проблемы.

Альтернативой в этой ситуации является HashMap, которая лучше, чем SparseArray, если у вас много элементов.

Реализация не предназначена для структур данных, которые могут содержать большое количество элементов. Он обычно медленнее, чем традиционный HashMap, поскольку для поиска требуется двоичный поиск, а для добавления и удаления требуется вставка и удаление записей в массиве. Для контейнеров, содержащих до сотни предметов, разница в производительности незначительна, менее 50%.

Из документации разработчика Android.

Ответ 2

SparseList реализует SparseArray. Этот класс идентичен java.util.ArrayList, за исключением того, что он позволяет присваивать индексы массивам, которые превышают текущую длину списка, используя ожидаемые методы set() и add(). *

Я думаю, здесь есть все, что вам нужно знать, чтобы понять, какой из них использовать.

SparseList также более эффективен

подробнее здесь