English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java List (liste)

Java Queue (file d'attente)

Java Map collection

Java Set collection

Java entrée/sortie (I/O)

Java Reader/Writer

Autres sujets Java

Java programme d'implémentation de la structure de données file (Queue)

    Java example complete list

Dans cet exemple, nous allons apprendre à implémenter la structure de données file en Java.

Pour comprendre cet exemple, assurez-vous de visiter d'abord les tutoriels suivants,

Exemple1:实现队列的Java程序

public class Queue {
  int SIZE = 5;
  int items[] = new int[SIZE];
  int avant, arrière;
  Queue() {
    avant = -1;
    arrière = -1;
  }
  //Vérifier si la file est pleine
  boolean estPleine() {
    if (avant == 0 && arrière == SIZE - 1) {
      retourner true;
    }
    retourner false;
  }
  //Vérifier si la file est vide
  boolean estVide() {
    if (avant == -1])
      retourner true;
    else
      retourner false;
  }
  //Insérer l'élément dans la file
  void enfiler(int element) {
    //Si la file est pleine
    if (estPleine()) {
      System.out.println("La file est pleine");
    }
    else {}}
      if (avant == -1) {
        //Marquer avant comme le premier élément de la file
        avant = 0;
      }
      arrière++;
      //Insérer un élément à l'arrière
      items[arrière] = element;
      System.out.println("Insérer " + element);
    }
  }
  //Supprimer l'élément de la file
  int déQueue() {
    int element;
    //Si la file est vide
    if (estVide()) {
      System.out.println("La file est vide");
      retourner (-1);
    }
    else {}}
      //Supprimer l'élément en tête de la file
      element = items[avant];
      //Si la file ne contient qu'un seul élément
      if (avant >= arrière) {
        avant = -1;
        arrière = -1;
      }
      else {}}
        //Marquer le prochain élément comme avant
        avant++;
      }
      System.out.println(element + "Supprimé");
      retourner (element);
    }
  }
  //Afficher les éléments de la file
  void afficher() {
    int i;
    if (estVide()) {
      System.out.println("Queue est vide");
    }
    else {}}
      //Afficher l'index avant de la file
      System.out.println("\nIndex avant-> \ + front);
      //Afficher les éléments de la file
      System.out.println("Éléments -> ");
      for (i = front; i <= rear; i++])
        System.out.print(items[i + "");
      // Afficher l'index arrière de la file
      System.out.println("\nIndex arrière-> \ + rear);
    }
  }
  public static void main(String[] args) {
    //Créer un objet de la classe Queue
    Queue q = new Queue();
    //Tentative de suppression d'un élément de la file
    // La file actuelle est vide
    // Ainsi, il n'est pas possible de supprimer
    q.deQueue();
    // Insérer l'élément dans la file
    for(int i = 1; i < 6; i ++) {
      q.enQueue(i);
    }
    // Impossible d'ajouter l'élément6éléments ajoutés à la file, car la file est pleine
    q.enQueue(6);
    q.display();
    // deQueue supprime l'élément d'entrée premier, par exemple :1
    q.deQueue();
    //Maintenant, nous avons seulement4éléments
    q.display();
  }
}

Output result

La file est vide
Insérer 1
Insérer 2
Insérer 3
Insérer 4
Insérer 5
La file est pleine
Index avant-> 0
Éléments ->
1  2  3  4  5  
Index arrière-> 4
1 Supprimé
Index avant-> 1
Éléments ->
2  3  4  5
Index arrière-> 4

Dans cet exemple, nous avons déjà implémenté la structure de données file en Java.

Exemple2:Implémenter une pile en utilisant l'interface Queue

Java fournit une interface intégrée Queue pouvant être utilisée pour implémenter des files.

import java.util.Queue;
import java.util.LinkedList;
class Main {
  public static void main(String[] args) {
    //Créer une file en utilisant la classe LinkedList
    Queue<Integer> numbers = new LinkedList<>();
    // enqueue
    //Insérer un élément à la fin de la file
    numbers.offer(1);
    numbers.offer(2);
    numbers.offer(3);
    System.out.println("File: ", + numbers);
    // dequeue
    //Supprimer l'élément en tête de la file
    int removedNumber = numbers.poll();
    System.out.println("Élément supprimé: ", + removedNumber);
    System.out.println("After deletion, queue: ") + numbers);
    }
}

Output result

Queue: [1, 2, 3]
Deleted element: 1
After deletion, queue: [2, 3]

In the above example, we used Java's Queue interface to implement the queue. Here, we use the LinkedList class to implement the Queue interface.

  • Numbers.offer() - Insert an element at the end of the queue

  • Numbers.poll() - Remove an element from the front of the queue

Note that we used angle brackets <Integer> when creating the queue. It indicates that the queue is a generic type. For more information about generics, please visitJava generics.

We can also use other interfaces and classes to replace Queue and LinkedList. For example,

Java example complete list