В чем разница между Map и обычными коллекциями

«В чем разница между Map и обычными коллекциями» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Map хранит пары ключ-значение, где каждый ключ уникален, а коллекции (List, Set) содержат только отдельные элементы.

Основные отличия:

  • Доступ: В Map доступ по ключу (O(1) в HashMap), в List — по индексу, в Set — только проверка наличия.
  • Дубликаты: Map не допускает дубликаты ключей, List — разрешает, Set — запрещает дубликаты элементов.
  • Итерация: Map требует работы с entrySet(), keySet() или values(), коллекции итерируются напрямую.

Пример:

val map = mapOf("a" to 1, "b" to 2) // Доступ: map["a"] → 1  
val list = listOf(1, 2) // Доступ: list[0] → 1  
val set = setOf(1, 2) // Проверка: set.contains(1) → true  

Map удобен для ассоциативных данных (например, кеширования), коллекции — для линейных операций.