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

Tutoriais Básicos de Java

Controle de Fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Java Mapa (Map)

Java Conjunto (Set)

Java Entrada e Saída (I/O)

Java Reader/Writer

Outros tópicos do Java

Java Program Implementing Queue (Queue) Data Structure

    大全 de exemplos Java

Neste exemplo, vamos aprender a implementar a estrutura de dados fila em Java.

Para entender este exemplo, certifique-se de que você primeiro acesse o seguinte tutorial,

Exemplo1:实现堆栈的Java程序

public class Queue {
  int SIZE = 5;
  int items[] = new int[SIZE];
  int front, rear;
  Queue() {
    front = -1;
    rear = -1;
  }
  //verificar se a fila está cheia
  boolean isFull() {
    if (front == 0 && rear == SIZE - 1) {
      return true;
    }
    return false;
  }
  //verificar se a fila está vazia
  boolean isEmpty() {
    if (front == -1)
      return true;
    else
      return false;
  }
  //Inserir elemento na fila
  void enQueue(int element) {
    //se a fila já estiver cheia
    if (isFull()) {
      System.out.println("A fila está cheia");
    }
    else {
      if (front == -1) {
        //marcar front como o primeiro elemento da fila
        front = 0;
      }
      rear++;
      //inserir elemento no final
      items[rear] = element;
      System.out.println("Inserir " + element);
    }
  }
  //excluir elemento da fila
  int deQueue() {
    int element;
    //se a fila estiver vazia
    if (isEmpty()) {
      System.out.println("A fila está vazia");
      return (-1);
    }
    else {
      //Remover elemento da frente da fila
      element = items[front];
      //se a fila tiver apenas um elemento
      if (front >= rear) {
        front = -1;
        rear = -1;
      }
      else {
        //marcar o próximo elemento como front
        front++;
      }
      System.out.println(element + "Excluído");
      return (element);
    }
  }
  //exibir elementos da fila
  void display() {
    int i;
    if (isEmpty()) {
      System.out.println("Cadeia vazia");
    }
    else {
      //Mostrar o índice frontal
      System.out.println("\nÍndice frontal-> " + front);
      //Mostrar os elementos da fila
      System.out.println("Itens -> ");
      for (i = front; i <= rear; i++)
        System.out.print(items[i] + "    ");
      // Mostrar o índice traseiro da fila
      System.out.println("\nÍndice traseiro-> " + rear);
    }
  }
  public static void main(String[] args) {
    //Criar um objeto da classe Queue
    Queue q = new Queue();
    //Tente remover um elemento da fila
    // A fila atual está vazia
    // Portanto, não pode ser removido
    q.deQueue();
    // Inserir elemento na fila
    for(int i = 1; i < 6; i ++) {
      q.enQueue(i);
    }
    // Não foi possível inserir o6elementos adicionados à fila, pois a fila está cheia
    q.enQueue(6);
    q.display();
    // deQueue remove o primeiro elemento inserido, por exemplo:1
    q.deQueue();
    //Agora temos apenas4elementos
    q.display();
  }
}

Resultados de saída

A fila está vazia
Inserir 1
Inserir 2
Inserir 3
Inserir 4
Inserir 5
A fila está cheia
Índice frontal-> 0
Itens ->
1  2  3  4  5  
Índice traseiro-> 4
1 Removido
Índice frontal-> 1
Itens ->
2  3  4  5
Índice traseiro-> 4

No exemplo acima, já implementamos a estrutura de dados de fila em Java.

Exemplo2: Implementar pilha usando a interface Queue

Java oferece uma interface interna para implementar filas, Queue.

import java.util.Queue;
import java.util.LinkedList;
class Main {
  public static void main(String[] args) {
    //Criar uma fila usando a classe LinkedList
    Queue<Integer> numbers = new LinkedList<>();
    // enqueue
    //Inserir elemento no final da fila
    numbers.offer(1);
    numbers.offer(2);
    numbers.offer(3);
    System.out.println("Fila: " + numbers);
    // dequeue
    //Remover elemento da frente da fila
    int removedNumber = numbers.poll();
    System.out.println("Elemento removido: " + removedNumber);
    System.out.println("Fila após exclusão: ") + numbers);
    }
}

Resultados de saída

Fila: [1, 2, 3]
Elemento excluído: 1
Fila após exclusão: [2, 3]

No exemplo acima, usamos a interface Java Queue para implementar a fila. Aqui, usamos a classe LinkedList para implementar a interface Queue.

  • Numbers.offer() - Inserir um elemento no final da fila

  • Numbers.poll() - Remover um elemento do início da fila

Atenção, usamos colchetes de ponta <Integer> ao criar a fila. Isso indica que a fila é um tipo genérico. Para obter mais informações sobre generics, acesseGenerics Java.

Também podemos usar outras interfaces e classes para substituir Queue e LinkedList. Por exemplo,

大全 de exemplos Java