Créer une liste mutable vide dans Kotlin

David Mbochi Njonge 30 janvier 2023
  1. Utiliser la méthode mutableListOf() dans Kotlin
  2. Utiliser la méthode arrayListOf() dans Kotlin
  3. Utiliser le constructeur d’une structure de données dans Kotlin
  4. Utiliser la déclaration implicite dans Kotlin
  5. Conclusion
Créer une liste mutable vide dans Kotlin

Avant de plonger dans les exemples, nous devons comprendre deux termes courants lorsque l’on travaille avec des données de type List.

Les termes incluent mutable et immuable. Une liste modifiable est une liste qui peut être modifiée en ajoutant ou en supprimant des éléments dans la structure de données.

Une liste immuable est une liste qui ne peut pas être modifiée en ajoutant ou en supprimant des éléments dans la structure de données.

A partir des deux termes, nous pouvons avoir deux types de listes qui incluent List et MutableList. Notez que MutableList est une liste car elle hérite de l’interface List.

Le type MutableList renvoie une liste modifiable, et le type List renvoie une liste non modifiable. Cependant, lorsque vous créez une implémentation de la List sans spécifier si la liste est mutable ou immuable, elle est supposée mutable par défaut.

Ce tutoriel nous apprendra comment créer une liste modifiable vide. Une liste vide signifie qu’il n’y a pas d’éléments dans la structure de données.

Utiliser la méthode mutableListOf() dans Kotlin

Allez dans IntelliJ et créez un nouveau projet Kotlin. Créez un nouveau fichier Kotlin nommé Main.kt sous le dossier kotlin.

Copiez le code suivant et collez-le dans le fichier.

val mutableEmptyList: MutableList<String> = mutableListOf();

fun main() {

    println(mutableEmptyList.isEmpty());

    mutableEmptyList.add("I am the first element !")

    println(mutableEmptyList.isEmpty());

}

La méthode mutableListOf() renvoie une liste vide de type MutableList, ce qui signifie que nous pouvons ajouter et supprimer des éléments dans la structure de données. Pour vérifier cela, vous pouvez invoquer la méthode add() ou remove() sur l’objet retourné.

Exécutez le code ci-dessus et notez que la méthode isEmpty() renvoie true avant l’ajout d’un élément et false après l’ajout d’un élément, comme indiqué ci-dessous.

true
false

Utiliser la méthode arrayListOf() dans Kotlin

Commentez l’exemple précédent et collez le code suivant dans le fichier Main.kt.

val mutableEmptyList: MutableList<String> = arrayListOf();

fun main() {

    println(mutableEmptyList.isEmpty());

    mutableEmptyList.add("I am the first element !")

    println(mutableEmptyList.isEmpty());

}

La méthode arrayListOf() retourne une ArrayList vide, mais dans l’exemple précédent, nous retournons une MutableList. Comment est-ce possible?

Dans la section d’introduction, nous avons mentionné que la MutableList est une List car elle hérite de l’interface List ; puisque ArrayList implémente l’interface List, nous pouvons retourner MutableList en utilisant la ArrayList.

Une fois que nous avons accès à la liste mutable, nous pouvons invoquer la méthode isEmpty() pour vérifier si la méthode est vide. Exécutez le code ci-dessus et observez que les sorties sont comme indiqué ci-dessous.

true
false

Utiliser le constructeur d’une structure de données dans Kotlin

Commentez l’exemple précédent et collez le code suivant dans le fichier 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 classe LinkedList implémente l’interface List, qui nous aide à retourner une MutableList de type LinkedList.

Le constructeur LinkedList() retourne une liste vide et s’applique aux constructeurs des autres structures de données qui implémentent l’interface List.

Exécutez l’exemple ci-dessus et notez que la sortie imprime la même chose que les autres exemples. La sortie est illustrée ci-dessous.

true
false

Utiliser la déclaration implicite dans Kotlin

Commentez l’exemple précédent et collez le code suivant dans le fichier Main.kt.

val mutableEmptyList  = ArrayList<String>();

fun main() {

    println(mutableEmptyList.isEmpty());

    mutableEmptyList.add("I am the first element !")

    println(mutableEmptyList.isEmpty());

}

Comme vous l’avez noté dans les exemples précédents, nous spécifiions directement le type de retour que nous voulions, qui était la MutableList. Dans la section d’introduction, nous avons mentionné que toute implémentation de liste est supposée être modifiable si nous ne spécifions pas si nous voulons une liste en lecture seule.

Cet exemple montre comment la MutableList est retournée implicitement en définissant une implémentation List sans indiquer le type de retour.

Exécutez le code ci-dessus et notez que la méthode isEmpty() héritée de la classe AbstractCollection renvoie true avant l’ajout d’un élément et false après l’ajout d’un élément. La sortie est illustrée ci-dessous.

true
false

Conclusion

Dans ce tutoriel, nous avons appris à créer une MutableList vide en utilisant différentes approches, notamment : en utilisant la méthode mutableListOf(), en utilisant la méthode arrayListOf(), en utilisant le constructeur d’une structure de données et en utilisant le approche de déclaration implicite.

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