Intereting Posts
Упрощение использования функции LocationClient поставщика Fused Location Задание тестовых зависимостей с системой сборки Gradle Android Как я могу сделать SurfaceView больше, чем экран? Android Canvas не рисовал Path, когда точка пути не видна Как предотвратить проверку CheckBox? Как выровнять linearlayout с вертикальным центром? Проблема с Marshmallow для Android 6.0 при загрузке приложения переднего плана Android DataBinding, где можно получить контекст? Как использовать Gradle, как я могу гарантировать, что файл существует в определенном месте? Android4.4 не может обрабатывать sms-намерение с помощью «vnd.android-dir / mms-sms» Намерение службы должно быть явным: намерение Управление Android-устройством через веб-браузер с ноутбука с помощью WiFI Выбор TextView setScaleX () / setScaleY () и setTextIsSelectable (true) Android-эмулятор не использует клавиатуру – инструменты SDK rev 20 Что такое «контекстное меню» и метод registerForContextMenu ()

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

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

Solutions Collecting From Web of "Разница между SparseArray Vs ArrayList?"

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

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

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

Из документации Android dev .

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

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

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

Больше информации здесь