La guía definitiva para inicializar listas en Kotlin
Una List<T>
de Kotlin se refiere a una colección de múltiples elementos. La <T>
en la sintaxis denota un tipo de datos indefinido. Esto significa que una lista inicializada con List<T>
no tiene un tipo de datos específico.
Podemos acceder fácilmente y modificar los elementos de una Lista
siempre que queramos utilizando funciones predefinidas de la clase Colecciones
.
Podemos inicializar dos tipos de listas en Kotlin, que son inmutables y mutables. Hay diferentes formas de inicializar estas listas, y las veremos en este artículo.
Inicializar listas inmutables en Kotlin
Las listas inmutables son colecciones que no se pueden cambiar una vez creadas. Se definen mediante la interfaz List
y se representan mediante las clases de implementación List
, como List
y ArrayList
.
Aprenderemos sobre tres formas de inicializar listas inmutables. Estos tres métodos incluyen lo siguiente:
listaDe()
Lista vacía()
listaDeNoNulos()
Inicializar listas de Kotlin con la función listOf()
El listOf()
es la función de nivel superior de la clase Collections
. Este método crea una lista inmutable de elementos. Es similar al uso de Arrays.asList
en Java.
Puede inicializar listas de Kotlin inmutables con la siguiente sintaxis.
val listName = listOf(item1, item2, item3)
Ahora, crearemos un programa Kotlin simple usando la sintaxis anterior. En este programa, crearemos una Lista
de Kotlin inmutable llamada Frutas
y agregaremos algunas frutas.
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
}
Esta es una lista inmutable. Por lo tanto, el uso de métodos predefinidos para modificar la lista dará como resultado un error.
Veremos esto en acción usando la función add()
para intentar agregar un elemento a la misma lista inmutable que definimos en el ejemplo anterior.
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
Fruits.add("Kiwi")
println(Fruits)
}
Como vemos en la salida, el método add()
arroja un error de referencia no resuelta: agregar
.
Inicializar listas de Kotlin con la función emptyList()
La siguiente forma de crear una Lista
de Kotlin inmutable es mediante el uso de la función emptyList()
. Funciona de manera similar a la función listOf()
, la única diferencia es que crea una lista vacía.
Esto significa que creará una lista, pero no habrá inicialización, ya que la lista estará vacía.
La sintaxis de usar la función emptyList()
es así:
val listName: List<String/Int> = emptyList()
Aquí hay un programa para demostrar el uso de emptyList()
para crear una lista inmutable vacía en Kotlin.
fun main() {
val emptyImmutableList: List<String> = emptyList()
println(emptyImmutableList)
}
Inicializar listas de Kotlin con la función listOfNotNull()
La función listOfNotNull()
devuelve una nueva lista de una colección existente sin null
.
Si tiene una lista con algunos valores de Cadena
y algunos nulos
, este método le dará una nueva lista con solo los valores de Cadena
. Pero si la lista solo tiene valores nulos
, la función devolverá una lista vacía.
La lista resultante es de solo lectura. Por lo tanto, la función listOfNotNull()
actúa como una forma de inicializar una lista inmutable de Kotlin.
Esta es la sintaxis de la función listOfNotNull()
.
fun <T : Any> listOfNotNull(element: T?): List<T>
En el siguiente programa, crearemos tres listas. Uno tendrá solo valores “nulos”, el segundo tendrá solo valores “no nulos” y el tercero tendrá una combinación de valores “nulos” y “no nulos”.
fun main(args: Array<String>) {
val nullValuesList = listOfNotNull(null, null)
println(nullValuesList)
val nonNullValuesList = listOfNotNull(13, "Hello", "Hi", 96)
println(nonNullValuesList)
val mixList = listOfNotNull(13, null, "Hello", null, 96)
println(mixList)
}
La primera función println()
da como resultado una lista vacía porque solo hay dos valores nulos
en la primera lista, nullValuesList
. La segunda función println()
imprime todos los elementos de la segunda lista nonNullValuesList
porque solo tiene valores no nulos
.
Sin embargo, la tercera función println()
imprime una lista que contiene solo valores no nulos
de mixList
.
Inicializar listas mutables en Kotlin
Las listas mutables son colecciones modificables a las que podemos acceder y modificar cuando sea necesario. Esta sección analizará dos formas de inicializar las listas de Kotlin.
Los dos métodos por los que pasaremos son los siguientes:
mutableListOf()
ListaDeArrayOf()
Inicializar listas de Kotlin con la función mutableListOf()
La primera forma de inicializar listas mutables de Kotlin es con el método mutableListOf()
. Al igual que la función listOf()
, mutableListOf()
también permite crear e inicializar una Lista
de Kotlin.
Sin embargo, esta función crea una lista mutable, lo que significa que puede agregar o eliminar los elementos de esta lista.
La sintaxis de mutableListOf()
es:
var listName = mutableListOf(item1, item2, item3)
Crearemos un programa Kotlin a continuación para crear e inicializar una lista mutable llamada Frutas
. A continuación, agregaremos un nuevo elemento a la lista y eliminaremos otro elemento.
fun main(args: Array<String>) {
var Fruits = mutableListOf("Apple", "Mango", "Strawberry")
println(Fruits)
// Adding a new element to the list
Fruits.add("Kiwi")
println(Fruits)
// Removing an element from the list
Fruits.remove("Mango")
println(Fruits)
}
Como vemos en la salida, la función add()
no arroja un error de referencia no resuelta
esta vez. Esto se debe a que la lista que creamos es mutable.
Inicializar listas de Kotlin con la función arrayListOf()
La otra forma de inicializar una lista
de Kotlin mutable es con la función arrayListOf()
. Este método crea e inicializa una matriz.
La sintaxis de la función arrayListOf()
es:
var listName = arrayListOf(item1, item2, item3)
Usaremos la sintaxis anterior para crear una ArrayList
de Kotlin mutable llamada Cars
e inicializarla con algunas marcas de automóviles. Luego agregaremos nuevos elementos a la ArrayList
para confirmar que es mutable.
fun main(args: Array<String>) {
var Cars = arrayListOf("Mercedes Benz", "BMW", "Bentley")
println(Cars)
Cars += listOf("Ferrari", "Lamborghini")
println(Cars)
}
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn