Назад к вопросам
Junior — Middle
76
Каким образом реализуется уникальность элементов внутри коллекции типа Set?
Компании, где спрашивали
БКС
Ответ от нейросети
sobes.tech AI
В iOS коллекция Set обеспечивает уникальность элементов за счёт использования хэширования и сравнения на равенство.
Каждый элемент в Set должен соответствовать протоколу Hashable, который требует реализации:
- метода
hash(into:)— для вычисления хэш-кода элемента; - оператора
==— для проверки равенства двух элементов.
Когда вы добавляете элемент в Set, система вычисляет его хэш и проверяет, есть ли уже элемент с таким же хэшем и равенством. Если да — элемент не добавляется, обеспечивая уникальность.
Пример:
struct Person: Hashable {
let id: Int
let name: String
}
var people = Set<Person>()
people.insert(Person(id: 1, name: "Alice"))
people.insert(Person(id: 1, name: "Alice")) // не добавится, т.к. уже есть такой элемент
Таким образом, уникальность в Set достигается за счёт хэширования и сравнения элементов.