¿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.