Ответ 1
Цель SparseArray
состоит в том, чтобы сохранить память, если у вас есть список, в котором есть много пробелов. Если у вас есть только 10 элементов, а числа, которые их индексируют, варьируются от 0 до 1000, тогда ArrayList
будет иметь много записей null
, и это будет довольно расточительно. A SparseArray
будет использовать внутренние структуры данных, чтобы избежать этой проблемы.
Альтернативой в этой ситуации является HashMap
, которая лучше, чем SparseArray
, если у вас много элементов.
Реализация не предназначена для структур данных, которые могут содержать большое количество элементов. Он обычно медленнее, чем традиционный HashMap, поскольку для поиска требуется двоичный поиск, а для добавления и удаления требуется вставка и удаление записей в массиве. Для контейнеров, содержащих до сотни предметов, разница в производительности незначительна, менее 50%.