image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Thaís Lotti
Thaís Lotti14/10/2024 14:04
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

Explorando Filas em Java: Entenda o Conceito e a Implementação

  • #Estrutura de dados
  • #Java

Você já se deparou com uma fila na vida real? Seja esperando no supermercado ou aguardando um pedido no drive-thru, filas seguem uma regra simples: o primeiro a chegar é o primeiro a ser atendido. E o mesmo acontece no mundo da programação! Hoje vamos explorar as filas em Java de uma maneira prática e lógica.

O que é uma Fila?

Uma fila é uma estrutura de dados que segue o princípio FIFO (First In, First Out), ou seja, o primeiro item que entra é o primeiro a sair. Se você já ficou em uma fila de pessoas, isso deve soar familiar. Imagine que você esteja criando um sistema que processa pedidos de uma lanchonete. Cada pedido é atendido na ordem em que chega, e é exatamente isso que as filas fazem na programação.

A Interface Queue em Java

Em Java, filas são representadas pela interface Queue, que faz parte da coleção de classes Java (java.util). Uma das implementações mais comuns de uma fila é a LinkedList.

Aqui está um exemplo básico de como criar uma fila em Java:


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

public class ExemploFila {
  public static void main(String[] args) {
      Queue<String> fila = new LinkedList<>();

      // Adicionando elementos na fila
      fila.add("Pedido 1");
      fila.add("Pedido 2");
      fila.add("Pedido 3");

      // Exibindo o primeiro item da fila (sem removê-lo)
      System.out.println("Primeiro na fila: " + fila.peek());

      // Processando (removendo) itens da fila
      while (!fila.isEmpty()) {
          System.out.println("Processando: " + fila.poll());
      }
  }
}

Explicando o Código:

  1. Criação da Fila: Usamos Queue<String> fila = new LinkedList<>(); para criar uma fila que armazena strings. O LinkedList é uma implementação comum de uma fila.
  2. Adicionando Elementos: A função add() insere elementos na fila. Aqui, estamos simulando a adição de pedidos de uma lanchonete.
  3. Visualizando o Primeiro Item: A função peek() nos mostra o primeiro item da fila, mas sem removê-lo. Isso é útil quando você só quer visualizar o próximo item a ser processado.
  4. Removendo Elementos: O método poll() remove e retorna o primeiro item da fila. O laço while processa todos os pedidos da fila até que ela esteja vazia.

Quando Usar Filas?

Filas são muito úteis em várias situações do mundo real e da programação, como:

  • Sistemas de impressão: Onde os documentos são impressos na ordem em que são enviados.
  • Gerenciamento de tarefas: Quando tarefas precisam ser executadas na ordem em que chegam.
  • Bancos de dados: Quando transações são processadas de forma sequencial.

Tipos de Filas

Além da fila simples, Java também oferece outras variações:

  • PriorityQueue: Diferente da fila comum, aqui os elementos têm uma prioridade. Os itens com maior prioridade são processados primeiro, não necessariamente na ordem de chegada.
  • Deque (Double Ended Queue): É uma fila onde os elementos podem ser inseridos e removidos tanto do início quanto do fim. Um exemplo de uso seria o processamento de tarefas que podem ser tratadas de forma bidirecional.

Aqui está um exemplo de PriorityQueue:


import java.util.PriorityQueue;

public class ExemploPriorityQueue {
  public static void main(String[] args) {
      PriorityQueue<Integer> filaPrioridade = new PriorityQueue<>();

      filaPrioridade.add(5);
      filaPrioridade.add(1);
      filaPrioridade.add(3);

      // Processando itens com prioridade (menor número tem maior prioridade)
      while (!filaPrioridade.isEmpty()) {
          System.out.println("Processando: " + filaPrioridade.poll());
      }
  }
}

Nesse exemplo, os elementos são processados em ordem crescente, mesmo que tenham sido inseridos fora de ordem.

Conclusão

Filas são uma estrutura de dados simples, mas extremamente poderosa. Elas seguem o princípio FIFO e podem ser usadas em diversas situações que envolvem a execução de tarefas em sequência. Em Java, a interface Queue e suas implementações, como LinkedList e PriorityQueue, oferecem flexibilidade para trabalhar com filas de maneira eficiente.

Agora que você entende como as filas funcionam em Java, que tal experimentá-las no seu próximo projeto?

Compartilhe
Recomendados para você
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Claro - Java com Spring Boot
Comentários (0)
Recomendados para você