> Как работает get в Map (Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Альфа-банк

Стек: Android

> Пример ответа

Метод get в интерфейсе Map (и его реализациях, таких как HashMap, TreeMap, LinkedHashMap) возвращает значение, связанное с указанным ключом, или null, если ключ отсутствует в коллекции. В Android-разработке это часто используется для хранения и быстрого доступа к данным, например, в кэшах или конфигурациях.

Как это работает под капотом (на примере HashMap):

  1. Вычисляется хеш-код ключа с помощью hashCode().
  2. Хеш-код преобразуется в индекс корзины (bucket) в массиве.
  3. В найденной корзине происходит поиск элемента по ключу (сравнение через equals()).
  4. Если элемент найден - возвращается его значение, иначе - 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, если ключи - целые числа или строки.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью