Sobes.tech
Junior

Ce tipuri de colecții suportă Kotlin?

sobes.tech AI

Răspuns de la AI

Kotlin suportă tipurile standard de colecții din Java Collection Framework, precum și extensii și interfețe utile proprii.

Interfețele principale ale colecțiilor în Kotlin:

  • Collection<out E>: Interfața de bază pentru colecții imuabile.
  • MutableCollection<E>: Interfața pentru colecții modificabile.
  • List<out E>: Interfața pentru colecții imuabile cu acces ordonat după index.
  • MutableList<E>: Interfața pentru colecții modificabile cu acces ordonat după index.
  • Set<out E>: Interfața pentru colecții imuabile de elemente unice fără o ordine specifică.
  • MutableSet<E>: Interfața pentru colecții modificabile de elemente unice fără o ordine specifică.
  • Map<K, out V>: Interfața pentru colecții imuabile de perechi cheie-valoare.
  • MutableMap<K, V>: Interfața pentru colecții modificabile de perechi cheie-valoare.

Implementări principale ale colecțiilor în biblioteca standard Kotlin (adesea folosite cu funcții constructor):

  • ArrayList: Listă modificabilă bazată pe array.
  • LinkedList: Listă modificabilă bazată pe listă legată.
  • HashSet: Set modificabil bazat pe tabel hash.
  • LinkedHashSet: Set modificabil bazat pe tabel hash și listă legată (păstrează ordinea de inserare).
  • HashMap: Hartă modificabilă bazată pe tabel hash.
  • LinkedHashMap: Hartă modificabilă bazată pe tabel hash și listă legată (păstrează ordinea de inserare).

Exemple de creare a colecțiilor:

// Listă imuabilă
val immutableList = listOf("a", "b", "c")

// Listă modificabilă
val mutableList = mutableListOf(1, 2, 3)

// Set imuabil
val immutableSet = setOf("apple", "banana")

// Set modificabil
val mutableSet = mutableSetOf(10, 20, 30)

// Hartă imuabilă
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")

// Hartă modificabilă
val mutableMap = mutableMapOf("a" to 1, "b" to 2)

Principalul diferență între versiunile modificabile (Mutable*) și cele imuabile (*) constă în faptul că colecțiile modificabile oferă metode pentru adăugare, ștergere și modificare a elementelor, în timp ce colecțiile imuabile nu o fac. Funcțiile constructor listOf, setOf, mapOf creează colecții imuabile, iar mutableListOf, mutableSetOf, mutableMapOf creează colecții modificabile.

Avantajele utilizării colecțiilor în Kotlin:

  • Siguranță: Colecțiile imuabile ajută la evitarea modificărilor neașteptate.
  • Extensii: Kotlin oferă multe funcții de extensie utile pentru lucrul cu colecțiile (filter, map, forEach, etc.).
  • Interoperabilitate: Este ușor să lucrezi cu cod Java existent care utilizează colecții din Java Collection Framework.