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

Tutorial di base Java

Controllo di flusso Java

Array Java

Java orientata agli oggetti (I)

Java orientata agli oggetti (II)

Java orientata agli oggetti (III)

Gestione delle eccezioni Java

Lista (List) di Java

Queue (coda) di Java

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Implementazione di una struttura dati coda (Queue) in un programma Java

    Enciclopedia di esempi Java

In questo esempio, impareremo a implementare la struttura dati coda in Java.

Per comprendere questo esempio, assicurati di aver visitato prima i seguenti tutorial:

Esempio 1: Implementazione di un programma Java per la pila

public class Queue {
  int SIZE = 5;
  int items[] = new int[SIZE];
  int front, rear;
  Queue() {
    front = -1;
    rear = -1;
  {}
  //检查队列是否已满
  boolean isFull() {
    if (front == 0 && rear == SIZE - 1) {
      return true;
    {}
    return false;
  {}
  //检查队列是否为空
  boolean isEmpty() {
    if (front == -1)
      return true;
    else
      return false;
  {}
  //将元素插入队列
  void enQueue(int element) {
    //如果队列已满
    if (isFull()) {
      System.out.println("Queue is full");
    {}
    else {
      if (front == -1) {
        //标记 front 表示队列的第一个元素
        front = 0;
      {}
      rear++;
      //在后面插入元素
      items[rear] = element;
      System.out.println("Insert " + element);
    {}
  {}
  //从队列中删除元素
  int deQueue() {
    int element;
    //如果队列为空
    if (isEmpty()) {
      System.out.println("Queue is empty");
      return (-1);
    {}
    else {
      //Elimina l'elemento dalla testa della coda
      element = items[front];
      //如果队列中只有一个元素
      if (front >= rear) {
        front = -1;
        rear = -1;
      {}
      else {
        //将下一个元素标记为 front
        front++;
      {}
      System.out.println(element + "  Deleted");
      return (element);
    {}
  {}
  //显示队列元素
  void display() {
    int i;
    if (isEmpty()) {
      System.out.println("Empty Queue");
    {}
    else {
      //显示队列的front
      System.out.println("\nFront index-> " + front);
      //显示队列的元素
      System.out.println("Items -> ");
      for (i = front; i <= rear; i++)
        System.out.print(items[i] + " ");
      //Mostra la coda posteriore
      System.out.println("\nIndice posteriore-> " + rear);
    {}
  {}
  public static void main(String[] args) {
    //Crea un oggetto della classe Queue
    Queue q = new Queue();
    //Tenta di eliminare un elemento dalla coda
    //La coda è vuota
    //Non è possibile eliminare
    q.deQueue();
    //Inserisci l'elemento nella coda
    for(int i = 1; i < 6; i++) {
      q.enQueue(i);
    {}
    //Non è possibile aggiungere il sesto elemento alla coda perché la coda è piena
    q.enQueue(6);
    q.display();
    //deQueue elimina l'elemento inserito per primo, ad esempio: 1
    q.deQueue();
    //Ora abbiamo solo 4 elementi
    q.display();
  {}
{}

Risultato di output

La coda è vuota
Inserisci 1
Inserisci 2
Inserisci 3
Inserisci 4
Inserisci 5
La coda è piena
Indice anteriore-> 0
Elementi->
1 2 3 4 5  
Indice posteriore-> 4
1 Eliminato
Indice anteriore-> 1
Elementi->
2 3 4 5
Indice posteriore-> 4

Nell'esempio sopra, abbiamo implementato la struttura dati della coda in Java.

Esempio 2: Implementazione di uno stack utilizzando l'interfaccia Queue

Java fornisce un'interfaccia integrata chiamata Queue per implementare code.

import java.util.Queue;
import java.util.LinkedList;
class Main {
  public static void main(String[] args) {
    //Utilizza la classe LinkedList per creare la coda
    Queue<Integer> numbers = new LinkedList<>();
    //enqueue
    //Inserisci l'elemento alla fine della coda
    numbers.offer(1);
    numbers.offer(2);
    numbers.offer(3);
    System.out.println("Coda: " + numbers);
    //dequeue
    //Elimina l'elemento dalla testa della coda
    int removedNumber = numbers.poll();
    System.out.println("Eliminato l'elemento: " + removedNumber);
    System.out.println("In coda dopo la rimozione: " + numbers);
    {}
{}

Risultato di output

Coda: [1, 2, 3]
Elemento rimosso: 1
In coda dopo la rimozione: [2, 3]

Nell'esempio sopra, abbiamo utilizzato l'interfaccia Queue Java per implementare la coda. Qui, abbiamo utilizzato la classe LinkedList per implementare l'interfaccia Queue.

  • Numbers.offer() - Inserire un elemento alla fine della coda

  • Numbers.poll() - Rimuovere un elemento dalla parte anteriore della coda

Attenzione, abbiamo utilizzato parentesi angolari <Integer> nella creazione della coda. Questo indica che la coda è un tipo generico. Per ulteriori informazioni sui generics, visitareGenerics Java.

Possiamo anche utilizzare altri interfacce e classi per sostituire Queue e LinkedList. Ad esempio,

Enciclopedia di esempi Java