#theory
В Android SDK есть большой пласт коллекций, которые мы не используем:
ArrayMap, SparseArray, ArraySet и т.д. Но все они дают определённые преимущества в сравнении с их более популярными «братьями». И знание того, когда какую коллекцию использовать даёт преимущество при оптимизации приложения, а также при прохождении некоторых этапов собеседования.
В статье автор детально рассказывает, как работает
ArrayMap: что будет, если добавить первый элемент, второй элемент и как разрешается коллизия. Далее автор сравнивает эти три коллекции между собой, с точки зрения памяти и скорости доступа. Выводы:
▪️если у вас меньше 1000 элементов, то используйте
ArrayMap, так как идёт выигрыш по памяти;▪️если ключами является целое число, то используйте
SparseArray, так как идёт ещё больший выигрыш по памяти;▪️если значений больше 1000, то
HashMap выигрывает по скорости;Добавлю, что плюсом у
HashMap является отсутствие привязки к Android SDK, что позволяет использовать её также и в KMM проектах. Очень интересно изучать то, как работают коллекции изнутри и разбираться в привычных инструментах. 🔥