Какая структура данных подходит для хранения значений без повторений

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

Ответ

Для хранения уникальных значений в Android/Kotlin лучше всего использовать Set.

Основные реализации:

  • HashSet - быстрый доступ, не сохраняет порядок
  • LinkedHashSet - сохраняет порядок добавления
  • TreeSet - сортирует элементы (по умолчанию по возрастанию)

Пример:

val uniqueNumbers = HashSet<Int>()
uniqueNumbers.add(1)
uniqueNumbers.add(2)
uniqueNumbers.add(1) // Не добавится

println(uniqueNumbers) // [1, 2]

Преимущества:

  • Гарантирует уникальность элементов
  • Быстрый поиск (O(1) для HashSet)
  • Интерфейс Set предоставляет удобные методы (union, intersect и др.)