В чем разница между List и Set

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

Ответ

List и Set — это коллекции в Kotlin/Java, но с разной семантикой:

  • List:

    • Хранит элементы в порядке добавления.
    • Допускает дубликаты.
    • Доступ по индексу (list[0]).
  • Set:

    • Гарантирует уникальность элементов (дубликаты игнорируются).
    • Не гарантирует порядок (если не LinkedHashSet).
    • Нет доступа по индексу.

Пример:

val list = listOf(1, 2, 2, 3) // [1, 2, 2, 3]  
val set = setOf(1, 2, 2, 3)   // [1, 2, 3]  

Выбор зависит от задачи: нужны ли дубликаты и порядок или только уникальность.