Junior — Middle
Hoe wordt de uniciteit van elementen binnen een Set-collectie geïmplementeerd?
sobes.tech AI
Antwoord van AI
In iOS zorgt de collectie Set voor de uniciteit van elementen door gebruik te maken van hashing en vergelijking op gelijkheid.
Elk element in Set moet voldoen aan het protocol Hashable, dat de implementatie vereist van:
- de methode
hash(into:)— voor het berekenen van de hash-code van het element; - de operator
==— voor het controleren van gelijkheid tussen twee elementen.
Wanneer je een element aan Set toevoegt, berekent het systeem de hash en controleert of er al een element met dezelfde hash en gelijkheid bestaat. Zo ja, wordt het element niet toegevoegd, wat de uniciteit garandeert.
Voorbeeld:
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")) // wordt niet toegevoegd, omdat zo'n element al bestaat
Op deze manier wordt uniciteit in Set bereikt door hashing en vergelijking van elementen.