Sobes.tech
Junior

¿Qué tipos de colecciones soporta Kotlin?

sobes.tech AI

Respuesta de la IA

Kotlin soporta los tipos estándar de colecciones del Java Collection Framework, además de ofrecer sus propias extensiones e interfaces convenientes.

Interfaces principales de colecciones en Kotlin:

  • Collection<out E>: Interfaz base para colecciones inmutables.
  • MutableCollection<E>: Interfaz para colecciones mutables.
  • List<out E>: Interfaz para colecciones inmutables con acceso ordenado por índice.
  • MutableList<E>: Interfaz para colecciones mutables con acceso ordenado por índice.
  • Set<out E>: Interfaz para colecciones inmutables de elementos únicos sin orden específico.
  • MutableSet<E>: Interfaz para colecciones mutables de elementos únicos sin orden específico.
  • Map<K, out V>: Interfaz para colecciones inmutables de pares "clave-valor".
  • MutableMap<K, V>: Interfaz para colecciones mutables de pares "clave-valor".

Implementaciones principales de colecciones en la biblioteca estándar de Kotlin (a menudo se usan funciones constructoras):

  • ArrayList: Lista mutable basada en un array.
  • LinkedList: Lista mutable basada en una lista enlazada.
  • HashSet: Conjunto mutable basado en una tabla hash.
  • LinkedHashSet: Conjunto mutable basado en una tabla hash y una lista enlazada (mantiene el orden de inserción).
  • HashMap: Mapa mutable basado en una tabla hash.
  • LinkedHashMap: Mapa mutable basado en una tabla hash y una lista enlazada (mantiene el orden de inserción).

Ejemplos de creación de colecciones:

// Lista inmutable
val immutableList = listOf("a", "b", "c")

// Lista mutable
val mutableList = mutableListOf(1, 2, 3)

// Conjunto inmutable
val immutableSet = setOf("apple", "banana")

// Conjunto mutable
val mutableSet = mutableSetOf(10, 20, 30)

// Mapa inmutable
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")

// Mapa mutable
val mutableMap = mutableMapOf("a" to 1, "b" to 2)

La diferencia clave entre las versiones mutables (Mutable*) e inmutables (*) radica en que las colecciones mutables proporcionan métodos para agregar, eliminar y modificar elementos, mientras que las colecciones inmutables no lo hacen. Las funciones constructoras listOf, setOf, mapOf crean colecciones inmutables, y mutableListOf, mutableSetOf, mutableMapOf crean colecciones mutables.

Ventajas de usar colecciones en Kotlin:

  • Seguridad: Las colecciones inmutables por defecto ayudan a evitar cambios no previstos.
  • Extensiones: Kotlin ofrece muchas funciones de extensión útiles para trabajar con colecciones (filter, map, forEach, etc.).
  • Interoperabilidad: Es fácil trabajar con código Java existente que usa colecciones del Java Collection Framework.