Расскажите про SparseArray

SparseArray сопоставляет целые числа с объектами, и, в отличие от обычного массива объектов, его индексы могут содержать пробелы. По сути это мапа, где ключами являются целые числа. SparseArray предназначен для более эффективного использования памяти, чем HashMap

SparseArray сохраняет свои пары ключ-значение в массивах, используя бинарный поиск для поиска ключей. Из-за этого он не предназначен для использования с большим количеством элементов. Как правило, он работает медленнее, чем хэш-мапа, поскольку для поиска требуется бинарный поиск, а для добавления и удаления требуется вставка и удаление элементов в массиве(что, как известно, медленные операции). Если требуется хранить до 100 элементов, то разница в производительности с хеш-мапой составляет менее 50%.

Чтобы повысить производительность, SparseArray использует оптимизацию при удалении ключей: вместо немедленного уплотнения своего массива он оставляет удаленную запись помеченной как удаленная. Таким образом массив не пересоздается каждый раз, что повышает производительность. Затем запись может быть повторно использована для того же ключа или уплотнена позже в единой сборке мусора всех удаленных записей.

Можно итерировать по элементам в SparseArray, используя методы keyAt(int) и valueAt(int). Перебор ключей с использованием keyAt(int) с возрастающими значениями индекса возвращает ключи в порядке возрастания. В случае valueAt(int) значения, соответствующие ключам, возвращаются в порядке возрастания.

Проверьте себя после изучения темы

Бесплатный бот с тестами и практическими заданиями по Kotlin.

  • 22 бесплатных урока
  • Тесты к каждому уроку (всего 220 вопросов)
  • Задачи в рамках практики KotlinSprint (120 задач) и курсовой проект «Телеграм бот для изучения иностранных слов»
Начать обучение

Вам также может быть интересно

Узнать подробнее
Курс AndroidSprint

Глубокое обучение Android разработке с 0 до получения оффера. Только персональная практика с гарантией получения продуктового опыта.

Узнать подробнее
Узнать подробнее
Практикум по Kotlin

Изучение Котлин с 0 для профессиональной разработки. Личный ментор и разбор кода задач через git-flow.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Kotlin разработке

Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.

Узнать подробнее
Узнать подробнее
Onboarding в разработку

Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь

Узнать подробнее
Узнать подробнее
Обучающий Kotlin телеграм бот (с тестами)

Ваш основной инструмент для изучения основ языка. Бесплатные тесты и практика внутри.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Android разработке

Самостоятельное обучение разработке Андроид приложений. Понятные видеоуроки с разжеванными примерами.

Узнать подробнее
Узнать подробнее
Курс по UI/Unit тестированию

Для ручных тестировщиков, которые готовы осваивать автотесты с использованием актуального стека технологий. [в разработке]

Узнать подробнее
Узнать подробнее
Обучающий Android телеграм бот (с тестами)

Бесплатные теоретические тесты для самопроверки. А также информер на практических спринтах по Android.

Узнать подробнее