Crear una lista mutable vacía en Kotlin

David Mbochi Njonge 30 enero 2023
  1. Usa el método mutableListOf() en Kotlin
  2. Usa el método arrayListOf() en Kotlin
  3. Usa el constructor de una estructura de datos en Kotlin
  4. Usa la Declaración Implícita en Kotlin
  5. Conclusión
Crear una lista mutable vacía en Kotlin

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 Mbochi Njonge avatar David Mbochi Njonge avatar

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