Fila FIFO em Java

Rashmi Patidar 12 outubro 2023
Fila FIFO em Java

Uma fila é uma estrutura de dados linear que implementa o conceito primeiro a entrar, primeiro a sair. O conceito significa que os elementos que entram primeiro são os primeiros a sair.

Os termos técnicos para representar a Queue estão usando as extremidades frontal e traseira. Os elementos são adicionados à Queue por trás e são retirados pela frente.

O exemplo do mundo real do conceito é a fila do balcão de ingressos, onde a pessoa que está na primeira posição obtém o ingresso primeiro. Agora em Java, o conceito ou a estrutura de dados é implementado na interface Queue. A interface está presente no pacote java.util.

Abaixo está o bloco de código que demonstra a estrutura da fila.

package F10;

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

public class Main {
  public static void main(String[] args) {
    Queue queue = new LinkedList<String>();
    queue.add("First");
    queue.add("Second");
    queue.add("third");
    System.out.println("Created Queue: " + queue);
    String value = (String) queue.remove();
    System.out.println("The element deleted from the head is: " + value);
    System.out.println("The queue after deletion: " + queue);
    String head = (String) queue.peek();
    System.out.println("The head of the present queue is: " + head);
    int size = queue.size();
    System.out.println("The size of the queue is: " + size);
  }
}

Existem várias maneiras de implementar a estrutura de dados Queue em Java. No bloco de código acima, o uso de LinkedList implementa o conceito.

Primeiro, uma referência Queue é instanciada usando a instrução new LinkedList. O método add está presente na interface Queue, que insere o elemento especificado na Queue. A função retorna booleano true quando o valor é acrescentado.

O método pode lançar a IllegalStateException quando o elemento não pode ser adicionado devido a restrições de tamanho. Ele também lança NullPointerException quando o valor transmitido é nulo. Quando o conjunto inicial de elementos é anexado à lista, a Fila é impressa. A instrução System.out.println pega a string que precisa ser impressa.

Em seguida, a função remove é chamada na instância Queue. Ele removerá o elemento presente no cabeçalho da Fila e, portanto, retornará o elemento principal.

Existe uma função poll semelhante que também remove o elemento presente na cabeça. A única diferença está na função remove que lança NoSuchElementException quando a Fila está vazia. Os valores removidos são armazenados em uma variável e impressos. A fila restante é impressa para verificar os elementos restantes.

A função peek recupera o elemento superior da Fila e não o remove; é uma forma de verificar o elemento na cabeça da Fila. A função retorna o valor principal e lança NoSuchElementException quando a Fila está vazia. A função size está presente na interface Collection e retorna o tamanho da coleção. Portanto, este método imprime o tamanho dos elementos restantes na Fila.

Produção:

Created Queue: [First, Second, third]
The element deleted from the head is: First
The Queue after deletion: [Second, third]
The head of the present Queue is: Second
The size of the Queue is: 2
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artigo relacionado - Java Queue