В чем разница между HashMap и HashSet

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

Ответ

HashMap и HashSet — оба используют хеширование, но служат разным целям:

  • HashMap — реализация Map, хранит пары ключ-значение. Ключи уникальны, значения могут дублироваться.
    val map = HashMap<String, Int>()
    map["one"] = 1
    map["two"] = 2
  • HashSet — реализация Set, хранит только уникальные элементы (без дубликатов). Внутри использует HashMap, где элементы — ключи, а значения — заглушки.
    val set = HashSet<String>()
    set.add("one")
    set.add("two")

Итог:

  • HashMap — для данных с ключами.
  • HashSet — для уникальных коллекций.