Sobes.tech
Junior — Middle
102

Wie wird die Einzigartigkeit der Elemente in einer Sammlung vom Typ Set umgesetzt?

Unternehmen wurden gefragt
БКС

Antwort von AI

sobes.tech KI

В 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 достигается за счёт хэширования и сравнения элементов.