Sobes.tech
Junior — Middle

Cum se implementează unicitatea elementelor în interiorul unei colecții de tip Set?

sobes.tech AI

Răspuns de la AI

În iOS, colecția Set asigură unicitatea elementelor prin utilizarea hash-ului și compararea egalității.

Fiecare element din Set trebuie să respecte protocolul Hashable, care necesită implementarea:

  • metodei hash(into:) — pentru calcularea codului hash al elementului;
  • operatorului == — pentru verificarea egalității a două elemente.

Când adăugați un element în Set, sistemul calculează hash-ul său și verifică dacă există deja un element cu același hash și egalitate. Dacă da, elementul nu este adăugat, asigurând unicitatea.

Exemplu:

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")) // nu va fi adăugat, deoarece deja există un astfel de element

Astfel, unicitatea în Set se realizează prin hash și compararea elementelor.