Junior — Middle
Welke implementatiemethoden van de Set-interface zijn beschikbaar in Kotlin en waarin verschillen ze?
sobes.tech AI
Antwoord van AI
In Kotlin wordt de Set-interface op verschillende manieren geïmplementeerd, die verschillen in mutabiliteit en interne implementatie:
- Set — dit is een interface voor een onveranderlijke verzameling (alleen lezen). Het biedt leesbewerkingen, maar geen wijzigingsbewerkingen.
- MutableSet — breidt Set uit en voegt methoden toe voor het wijzigen van de verzameling (elementen toevoegen, verwijderen).
Implementaties:
- HashSet — gebaseerd op een hash-tabel, biedt snelle toegang en bewerkingen voor toevoegen/verwijderen. De volgorde van elementen wordt niet gegarandeerd.
- LinkedHashSet — erft van HashSet, behoudt de invoer volgorde van de elementen.
- SortedSet / TreeSet (via Java) — verzameling waarvan de elementen gesorteerd zijn volgens de natuurlijke volgorde of een comparator.
Voorbeeld:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // toegestaan
// readOnlySet.add(4) // compilatiefout
Dus, de keuze van de implementatie hangt af van de vereisten voor mutabiliteit en de volgorde van de elementen.