> Как работает get в Map (Android)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Альфа-банк
Стек: Android
> Пример ответа
Метод get в интерфейсе Map (и его реализациях, таких как HashMap, TreeMap, LinkedHashMap) возвращает значение, связанное с указанным ключом, или null, если ключ отсутствует в коллекции. В Android-разработке это часто используется для хранения и быстрого доступа к данным, например, в кэшах или конфигурациях.
Как это работает под капотом (на примере HashMap):
- Вычисляется хеш-код ключа с помощью
hashCode(). - Хеш-код преобразуется в индекс корзины (bucket) в массиве.
- В найденной корзине происходит поиск элемента по ключу (сравнение через
equals()). - Если элемент найден - возвращается его значение, иначе -
null.
Пример в Android:
val map = HashMap<String, Int>() map["users"] = 5 val count = map.get("users") // вернёт 5 val missing = map.get("admins") // вернёт null
Важные нюансы:
getможет вернутьnullкак для отсутствующего ключа, так и для ключа, у которого значение явно установлено вnull(если реализацияMapэто допускает, например,HashMap).- Для избежания путаницы используйте
getOrDefault(key, defaultValue)(доступен с Java 8 / API 24+). - В Android для оптимизации работы с памятью и производительностью рекомендуется использовать
ArrayMapилиSparseArrayвместоHashMap, если ключи - целые числа или строки.
> Похожие задачи по mobile
Что такое битовые сдвиги и где они применяются
Знаете ли вы полную аббревиатуру state machine
Какие типы данных относятся к стеку, а какие к куче
Что такое capture list в closure и как с ним работать
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью