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