Sobes.tech
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.