Vous êtes sur la page 1sur 50

LES QUEUES EN JAVA SOMMAIRE

GROUPE II
I. Introduction
II. L’interface queue
III. L’interface dequeue

▪ GOSSOU Yao Sylvain IV. Opérations sur les queues


▪ TOFA E. Emmanuel V. Création d’une queue
▪ AGBEGNINOU Léna VI. Travaux pratiques
▪ ATUAKUMA Kossi VII. Différence entre queue et les
▪ ZODIHOUE Thibaute autres interfaces
Introduction

En Java, l’interface Queue modélise une file d’attente. Elle est une
collection normale qui étend l’interface Collection avec quelques
différences sémantiques.

Qu’est-ce qu’une Queue ?


L’interface Queue

L’interface Queue propose un ensemble de méthodes qui


permet d’exploiter le principe FIFO des queues.

Voici les principales méthodes de l’interface Queue :


L’interface Queue
LES PRIORITY QUEUES
Les priority Queues

Une PriorityQueue est un type spécial de file d’attente qui


ordonne ses éléments en fonction de leur ordre naturel ou d’un
comparateur personnalisé .
Les priority Queues
L’INTERFACE DEQUEUE
L’interface dequeue

Deque est l'abréviation de "Double Ended Queue" (File


d'attente à double extrémité). Comme les personnes faisant la
queue au supermarché, seules la première et la dernière de la
file d'attente sont servies.
L’interface dequeue

Deque est une interface qui hérite de Queue. Il fournit en plus


des méthodes de Queues d’autres méthodes permettant d'insérer
un élément au début ou à la fin, d'accéder ou de supprimer son
premier ou dernier élément.
L’interface dequeue

Syntaxe de création objet de type queue :

public interface Deque<E> extends Queue<E>


LES METHODES DE
L’INTERFACE DEQUEUE
Méthodes de L’interface dequeue

➢ boolean add(element) : ajoute un élément à la queue du Deque.


Renvoie true en cas de succès, lève une IllegalStateException si
aucun espace n'est actuellement disponible.

➢ addFirst(element) : ajoute un élément à la tête du Deque.

➢ addLast(element) : ajoute un élément à la queue du Deque.

➢ offer (élément) : ajoute un élément à la queue et renvoie un


booléen pour expliquer si l'insertion a réussi.
Méthodes de L’interface dequeue

➢ offerFirst(element) ajoute un élément à la tête et renvoie un


booléen pour expliquer si l'insertion a réussi.

➢ offerLast(element) ajoute un élément à la queue et renvoie un


booléen pour expliquer si l'insertion a réussi.

➢ iterator() renvoie un itérateur pour le deque.

➢ descendantIterator() renvoie un itérateur qui a l'ordre


inverse pour cette deque.
Méthodes de L’interface dequeue

➢ push(element) ajoute un élément à la tête.

➢ pop(element) supprime un élément de la tête et le renvoie.

➢ removeFirst() supprime l'élément en tête.

➢ removeLast() supprime l'élément à la fin.


Méthodes de L’interface dequeue
➢ poll() récupère et supprime la tête de la file d'attente représentée par
ce deque (autrement dit, le premier élément de ce deque), ou renvoie
null si ce deque est vide.

➢ pollFirst() récupère et supprime le premier élément de ce deque, ou


renvoie null si ce deque est vide.

➢ pollLast() récupère et supprime le dernier élément de ce deque, ou


retourne null si ce deque est vide.

➢ peek() récupère, mais ne supprime pas, la tête de file représentée par


ce deque (autrement dit, le premier élément de ce deque), ou renvoie
null si ce deque est vide.
Méthodes de L’interface dequeue

➢ peekFirst() : récupère, mais ne supprime pas, le premier élément


de ce deque, ou renvoie null si ce deque est vide.

➢ peekLast() : récupère, mais ne supprime pas, le dernier élément


de ce deque, ou renvoie null si ce deque est vide
IMPLEMENTATION DE
DEQUEUE
Implémentation dequeue
IMPLEMENTATION DE
DEQUEUE
Implementation de dequeue

❑ La classe ArrayDeque : La classe ArrayDeque <E> est une file


d'attente générale bidirectionnelle, héritant de la classe
AbstractCollection et implémentant l'interface Deque.
ArrayDeque fournit la possibilité d'utiliser Deque et resizable-
array. Initialement, le tableau est initialisé avec la taille 16. Il est
implémenté comme une file d'attente bidirectionnelle, où il prend
en charge deux pointeurs, à savoir la tête et la queue.
Implementation de dequeue

Les points importants concernant la classe ArrayDeque sont :

❑ Vous pouvez ajouter ou supprimer des éléments de la queue et de


la tête du ArrayDeque
❑ Les éléments nuls ne sont pas autorisés
❑ ArrayDeque n'a aucune restriction de capacité.
Implementation de dequeue

Les constructeurs de la classe ArrayDeque:

✓ ArrayDeque() : crée une file d'attente vide.


✓ ArrayDeque(Collection <? Extends E> collection) : crée une file
d'attente remplie d'éléments de la collection Collection.
✓ ArrayDeque(int capacité) : crée une file d'attente avec une
capacité de capacité initiale. Si vous ne spécifiez pas la capacité
initiale, la capacité par défaut est 16.
Implementation de dequeue

❑ La classe LinkedList : LinkedList est principalement connue


comme une implémentation de List, mais cette classe implémente
également Deque, et elle nous permet de créer une file d'attente
bidirectionnelle composée de tous les objets, y compris null.
L'interface List conserve la séquence d'ajout d'éléments et permet
l'accès à l'élément par index.
Implementation de dequeue

Les points importants concernant la classe LinkedList sont :

❑ Chaque élément de la liste possède une référence vers l’élément


suivant
❑ La tête de liste pointe vers le premier élément
❑ La queue de la liste pointe vers NULL;
❑ LinkedList n’a aucune restriction de capacité.
LES OPERATIONS SUR
LES QUEUES
Les opérations sur les queues

1. Ajout

Pour ajouter un élément à une queue en Java, on peut utiliser la


méthode add(). Les éléments sont stockés selon l'ordre de priorité
qui est croissant par défaut. L'ordre d'insertion n'est pas conservé
dans PriorityQueue. Les éléments sont stockés selon l'ordre de
priorité qui est croissant par défaut.
Les opérations sur les queues
Les opérations sur les queues

2. Retrait d’éléments

Afin de supprimer un élément d’une file d’attente, nous pouvons


utiliser la méthode remove(). S'il existe plusieurs objets de ce type,
la première occurrence de l'objet est supprimée. En dehors de cela,
la méthode poll() est également utilisée pour supprimer la tête et
la renvoyer.
Les opérations sur les queues
Les opérations sur les queues

3. Itération

Il existe plusieurs façons de parcourir la queue. La méthode la plus


connue consiste à convertir la queue en tableau et à la parcourir
à l'aide de la boucle for. Cependant, queue dispose également d'un
itérateur intégré qui peut être utilisé pour la parcourir.
Les opérations sur les queues
CREATION D’UNE
QUEUE
Création des queues

On dispose de plusieurs classes pour la création d’une queue :

• ArrayList,
• LinkedList et
• PriorityQueue…
Création des queues
Création des queues

Pour choisir une classe, on se base sur les fonctionnalités qu’elle


propose :

✓ La classe PriorityQueue permet la création d’une queue en


rangeant les éléments dans un ordre naturel ou à l’aide d’un
comparateur spécifié lors de la création.
Création des queues
Création des queues

Le comparateur est un objet d’une classe qui implémente l’interface


Comparator.
Création des queues

✓ LinkedList est une classe qui implémente l’interface Deque donc


fournit de ce fait une implémentation aux méthodes de l’interface
Queue. Chaque élément représente un nœud et contient des
références vers le prochain élément.
Création des queues
Création des queues

✓ ArrayDeque : Il s’agit d’une classe qui implémente l’interface


Deque mais peut être utile pour créer un objet de type queue.
Création des queues
TRAVEAUX PRATIQUES
Travaux Pratiques

Supposons qu'un parc d'attractions dispose de plusieurs manèges, et


les visiteurs arrivent au parc à différents moments et souhaitent
faire la queue pour monter sur les manèges. Chaque manège a une
capacité maximale de personnes qu'il peut accueillir en même
temps.
Utilisez une LinkedList pour gérer les files d'attente pour les
manèges en respectant l'ordre d'arrivée des visiteurs et en tenant
compte de la capacité maximale de chaque manège.
DIFFERENCE ENTRE
QUEUE ET LES AUTRES
INTERFACES
Différence entre queue et les
autres interfaces

Chaque interface a ses propres caractéristiques et est adaptée à des


cas d'utilisation spécifiques. Voici quelques différences entre
l'interface Queue et les autres interfaces de la collection les plus
couramment utilisées :
Différence entre queue et les
autres interfaces

1. Queue vs List :

Queue suit le principe FIFO (First-In-First-Out) ; l'élément qui a


été ajouté en premier est celui qui sera retiré en premier.
List est une collection ordonnée d'éléments qui permet l'accès par
index. Les éléments peuvent être dupliqués et l'ordre d'insertion est
préservé.
Différence entre queue et les
autres interfaces

2. Queue vs Set :

Queue autorise les doublons et suit le principe FIFO.


Set ne permet pas les doublons et n'assure pas un ordre spécifique
des éléments. Il existe différentes implémentations de Set comme
HashSet, TreeSet, etc.
Différence entre queue et les
autres interfaces

3. Queue vs Deque :

Queue est une structure de données où les éléments sont ajoutés à la


fin et retirés du début (FIFO).
Deque (Double-ended queue) est une structure de données qui
permet à la fois l'ajout et la suppression d'éléments à la fin et au
début. Il peut être utilisé comme une queue (FIFO) ou un stack
(LIFO).
Différence entre queue et les
autres interfaces

4. Queue vs Map :

Queue stocke une collection d'éléments dans un ordre séquentiel


selon le principe FIFO.
Map stocke des associations clé-valeur où chaque clé est associée à
une seule valeur. Il n'y a pas de notion d'ordre séquentiel dans une
Map.

Vous aimerez peut-être aussi