devstory

Le Tutoriel de Java Queue

View more Tutorials:

1- Queue

Queue (la file d'attente) est une sous-interface de Collection, elle dispose donc de toutes les fonctionnalités de Collection. Elle propose des méthodes pour accéder ou supprimer le premier élément et celles pour insérer un élément dans la file d'attente. Si vous voulez accéder à un certain élément, vous devez supprimer tous les éléments qui le précèdent de la file d'attente.
Queue est une Collection qui autorise les éléments dupliqués mais pas les éléments null.
Prenons l'exemple d'une file d'attente dans un bar. À un moment où seule la première personne de la file d'attente est servie, le nouvel arrivant sera inséré quelque part dans la file d'attente. Cela peut ne pas être la dernière position, selon le type de file d'attente et la priorité du nouvel arrivant.
public interface Queue<E> extends Collection<E>
Hiérarchie des interfaces dans Java Collection Framework:
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
La hiérarchie des classes dans le groupe Queue:
Les relations entre les interfaces et les classes dans le groupe Queue:
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
  • TODO Link!
LinkedList est une classe spéciale qui appartient à la fois au groupe List et à celui de Queue:

2- Les méthodes de Queue

En dehors des méthodes héritées de Collection, Queue dispose de ses propres méthodes:
boolean add(E e);
boolean offer(E e);

E remove();
E poll();

E element();
E peek();
  Throws exception Returns special value
Insert boolean add(E) boolean offer(E)
Remove E remove() E poll()
Examine E element() E peek()

boolean add(E)* / boolean offer(E)

boolean add(E)Insérer un élément dans Queue. S'il n'y a plus d'espace à insérer, cette méthode lancera une exception. La méthode renvoie true si l'insertion réussit.
boolean offer(E)Insérer un élément dans Queue. Si Queue n'a plus d'espace ou échoue, la méthode renvoie false.
Lorsqu'un élément est inséré dans Queue, sa position est déterminée par le type de Queue et la priorité de l'élément. Vous ne pouvez pas spécifier sa position.
En fonction du type de Queue que vous utilisez, cela peut limiter le nombre d'éléments ou augmenter la taille automatiquement.

E remove()* / E poll()

E remove()Renvoyer le premier élément de Queue et le supprimer de Queue. Cette méthode lance une exception si Queue ne dispose d'aucun élément.
E poll()Renvoyer le premier élément de Queue et le supprimer de Queue. Cette mèethode renvoie à null si Queue ne dispose d'aucun élément.

E element() * / E peek()

E element()Renvoyer le premier élément de Queue mais ne pas le supprimer de Queue. Cette méthode lance une exception si Queue ne dispose d'aucun élément.
E peek()Renvoyer le premier élément de Queue mais ne pas le supprimer de Queue. Cette méthode renvoie à null si Queue ne dispose d'aucun élément.

3- Examples

LinkedList (Queue)

LinkedList représente une file d'attente traditionnelle. Les méthodes add/offer ajoutent un élément à la queue de cette file d'attente.
LinkedListEx1.java
package org.o7planning.queue.ex;

import java.util.LinkedList;
import java.util.Queue;

public class LinkedListEx1 {

    public static void main(String[] args) {
       // Create Queue     
       Queue<String> queue = new LinkedList<String>();
       
       queue.offer("One");
       queue.offer("Two");
       queue.offer("Three");
       queue.offer("Four");
       queue.offer("Five");
       
       String current;
       
       while((current = queue.poll())!= null) {
           System.out.println(current);
       }
    }
}
Output:
One
Two
Three
Four
Five

PriorityQueue

PriorityQueue est une Queue qui peut trier automatiquement les éléments par leur ordre de priorité ou par un Comparator donné. Cela signifie qu'un élément inséré dans PriorityQueue peut ne pas être en dernière position.
Par exemple, une PriorityQueue<String> trie les éléments par ordre alphabétique.
PriorityQueueEx1.java
package org.o7planning.queue.ex;

import java.util.PriorityQueue;
import java.util.Queue;

public class PriorityQueueEx1 {

    public static void main(String[] args) {
       // Create Queue     
       Queue<String> queue = new PriorityQueue<String>();
       
       queue.offer("One");
       queue.offer("Two");
       queue.offer("Three");
       queue.offer("Four");
       queue.offer("Five");
       
       String current;
       
       while((current = queue.poll())!= null) {
           System.out.println(current);
       }
    }
}
Output:
Five
Four
One
Three
Two
  • TODO Link!
  • TODO Link!

View more Tutorials:

Peut-être que vous êtes intéressé

Voici des leçons en ligne à part du site web o7planning que nous recommandons. La liste comprend des leçons en ligne et celles en promo.