La Queue en Kotlin

Qu'est-ce qu'une Queue ?

Une queue (ou queue en anglais) est une interface de collection en Kotlin, utilisée pour modéliser une structure de données qui organise les éléments dans un ordre linéaire selon le principe FIFO (First In, First Out). Cela signifie que l'élément le plus ancien ajouté à la queue sera le premier à en sortir.

Comment créer une Queue

Pour créer une queue en Kotlin, on utilise l'interface Queue :

val queue: Queue = Collection()

Ici, queue est une variable de type Queue, où Type représente le type des éléments stockés dans la queue. Pour l'implémentation de la queue, on peut utiliser différentes classes de collections comme LinkedList, ArrayDeque, ou PriorityQueue.

Par exemple, pour créer une queue contenant des chaînes de caractères avec une instance de LinkedList :

val queue: Queue = LinkedList()

Ajouter des éléments à une Queue

Pour ajouter des éléments à une queue, on utilise la méthode .add() :

import java.util.*

fun main() {
    val queue: Queue = LinkedList()
    queue.add("pomme")
    queue.add("banane")
    queue.add("orange")
    println(queue)
}

Le résultat de ce code sera :

[pomme, banane, orange]

Retirer des éléments d'une Queue

On peut enlever des éléments d'une queue avec la méthode .remove() :

import java.util.*

fun main() {
    val queue: Queue = LinkedList()
    queue.add("pomme")
    queue.add("banane")
    queue.add("orange")
    println(queue)

    val a = queue.remove()
    val b = queue.remove()
    val c = queue.remove()

    println(queue)
    print(a, b, c)
}

fun print(a: String, b: String, c: String) {
    println("Le premier élément retiré est : $a")
    println("Le deuxième élément retiré est : $b")
    println("Le troisième élément retiré est : $c")
}

La sortie de ce code sera :

[pomme, banane, orange]
[]
Le premier élément retiré est : pomme
Le deuxième élément retiré est : banane
Le troisième élément retiré est : orange

Dans cet exemple, chaque élément retiré de la queue est stocké dans une variable.

Regarder les éléments dans une Queue

Pour afficher le premier élément d'une queue sans l'enlever, on utilise la méthode .peek() :

import java.util.*

fun main() {
    val queue: Queue = LinkedList()
    queue.add("pomme")
    queue.add("banane")
    queue.add("orange")
    println(queue)

    val frontElement = queue.peek()
    println("L'élément en tête est : $frontElement")
}

La sortie sera :

[pomme, banane, orange]
L'élément en tête est : pomme