Junior — Middle
Koji načini implementacije interfejsa Set su dostupni u Kotlinu i po čemu se razlikuju?
sobes.tech АИ
Одговор од АИ
U Kotlin-u, interfejs Set implementiran je na više načina, koji se razlikuju po mutabilnosti i unutrašnjoj implementaciji:
- Set — to je interfejs za nemutabilni skup (samo za čitanje). On pruža operacije za čitanje, ali ne i za modifikaciju.
- MutableSet — proširuje Set i dodaje metode za modifikaciju skupa (dodavanje, uklanjanje elemenata).
Implementacije:
- HashSet — zasnovan na hash tabeli, obezbeđuje brz pristup i operacije dodavanja/uklanjanja. Redosled elemenata nije garantovan.
- LinkedHashSet — naslednik od HashSet, čuva redosled umetanja elemenata.
- SortedSet / TreeSet (kroz Java) — skup čiji su elementi sortirani po prirodnom redosledu ili po komparatoru.
Primer:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // dozvoljeno
// readOnlySet.add(4) // greška pri kompilaciji
Dakle, izbor implementacije zavisi od zahteva za mutabilnošću i redosledom elemenata.