Crear una lista mutable vacía en Kotlin
-
Usa el método
mutableListOf()
en Kotlin -
Usa el método
arrayListOf()
en Kotlin - Usa el constructor de una estructura de datos en Kotlin
- Usa la Declaración Implícita en Kotlin
- Conclusión
Antes de sumergirnos en los ejemplos, debemos entender dos términos comunes cuando se trabaja con datos del tipo List
.
Los términos incluyen mutable e inmutable. Una lista mutable es una lista que se puede modificar agregando o eliminando elementos en la estructura de datos.
Una lista inmutable es una lista que no se puede modificar agregando o eliminando elementos en la estructura de datos.
De los dos términos, podemos tener dos tipos de listas que incluyen List
y MutableList
. Tenga en cuenta que MutableList
es una lista porque hereda de la interfaz List
.
El tipo MutableList
devuelve una lista que se puede modificar, y el tipo List
devuelve una lista que no se puede modificar. Sin embargo, cuando crea una implementación de la List
sin especificar si la lista es mutable o inmutable, se asume que es mutable por defecto.
Este tutorial nos enseñará cómo crear una lista mutable vacía. Una lista vacía significa que no hay elementos en la estructura de datos.
Usa el método mutableListOf()
en Kotlin
Vaya a IntelliJ
y cree un nuevo proyecto de Kotlin. Cree un nuevo archivo Kotlin llamado Main.kt
en la carpeta kotlin
.
Copie el siguiente código y péguelo en el archivo.
val mutableEmptyList: MutableList<String> = mutableListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
El método mutableListOf()
devuelve una lista vacía de tipo MutableList
, lo que significa que podemos agregar y eliminar elementos en la estructura de datos. Para verificar esto, puede invocar el método add()
o remove()
en el objeto devuelto.
Ejecute el código anterior y tenga en cuenta que el método isEmpty()
devuelve true
antes de agregar cualquier elemento y false
después de agregar un elemento, como se muestra a continuación.
true
false
Usa el método arrayListOf()
en Kotlin
Comenta el ejemplo anterior y pega el siguiente código en el archivo Main.kt
.
val mutableEmptyList: MutableList<String> = arrayListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
El método arrayListOf()
devuelve una ArrayList
vacía, pero en el ejemplo anterior, estamos devolviendo una MutableList
. ¿Cómo es esto posible?
En la sección de introducción, mencionamos que MutableList
es una List
porque hereda de la interfaz List
; dado que ArrayList
implementa la interfaz List
, podemos devolver MutableList
usando ArrayList
.
Una vez que tengamos acceso a la lista mutable, podemos invocar el método isEmpty()
para verificar si el método está vacío. Ejecute el código anterior y observe que los resultados son los que se muestran a continuación.
true
false
Usa el constructor de una estructura de datos en Kotlin
Comenta el ejemplo anterior y pega el siguiente código en el archivo Main.kt
.
import java.util.LinkedList
val mutableEmptyList: MutableList<String> = LinkedList();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
La clase LinkedList
implementa la interfaz List
, que nos ayuda a devolver una MutableList
de tipo LinkedList
.
El constructor LinkedList()
devuelve una lista vacía y se aplica a los constructores de otras estructuras de datos que implementan la interfaz List
.
Ejecute el ejemplo anterior y tenga en cuenta que la salida se imprime igual que los otros ejemplos. La salida se muestra a continuación.
true
false
Usa la Declaración Implícita en Kotlin
Comenta el ejemplo anterior y pega el siguiente código en el archivo Main.kt
.
val mutableEmptyList = ArrayList<String>();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
Como ha notado en los ejemplos anteriores, estábamos especificando directamente el tipo de devolución que queríamos, que era MutableList
. En la sección de introducción, mencionamos que se supone que cualquier implementación de lista es mutable si no especificamos si queremos una lista de solo lectura.
Este ejemplo muestra cómo se devuelve implícitamente la MutableList
al definir una implementación List
sin indicar el tipo de devolución.
Ejecute el código anterior y observe que el método isEmpty()
heredado de la clase AbstractCollection
devuelve true
antes de agregar cualquier elemento y false
después de agregar un elemento. La salida se muestra a continuación.
true
false
Conclusión
En este tutorial, hemos aprendido cómo crear una MutableList
vacía usando diferentes enfoques que incluyen: usando el método mutableListOf()
, usando el método arrayListOf()
, usando el constructor de una estructura de datos y usando el enfoque de declaración implícita.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub