Sobes.tech
Junior — Middle

Quali sono le modalità di implementazione dell'interfaccia Set disponibili in Kotlin e in cosa si differenziano?

sobes.tech AI

Risposta dell'AI

In Kotlin, l'interfaccia Set è implementata in diversi modi, che differiscono per mutabilità e implementazione interna:

  • Set — è un'interfaccia per un insieme immutabile (solo lettura). Fornisce operazioni di lettura, ma non di modifica.
  • MutableSet — estende Set e aggiunge metodi per modificare l'insieme (aggiunta, rimozione di elementi).

Implementazioni:

  • HashSet — basato su una tabella hash, garantisce accesso rapido e operazioni di aggiunta/rimozione. L'ordine degli elementi non è garantito.
  • LinkedHashSet — eredita da HashSet, mantiene l'ordine di inserimento degli elementi.
  • SortedSet / TreeSet (tramite Java) — insieme i cui elementi sono ordinati secondo l'ordine naturale o un comparatore.

Esempio:

val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)

mutableSet.add(4) // consentito
// readOnlySet.add(4) // errore di compilazione

Pertanto, la scelta dell'implementazione dipende dai requisiti di mutabilità e dall'ordine degli elementi.