Interface Java Queue

Neste tutorial, aprenderemos sobre a interface Java Queue e seus métodos.

A Queueinterface da estrutura de coleções Java fornece a funcionalidade da estrutura de dados da fila. Ele estende a Collectioninterface.

Classes que implementam fila

Como Queueé uma interface, não podemos fornecer a implementação direta dela.

Para usar as funcionalidades de Queue, precisamos usar classes que o implementam:

  • ArrayDeque
  • LinkedList
  • Fila de prioridade

Interfaces que estendem Queue

A Queueinterface também é estendida por várias subinterfaces:

  • Deque
  • BlockingQueue
  • BlockingDeque

Trabalho da estrutura de dados da fila

Nas filas, os elementos são armazenados e acessados ​​da maneira primeiro a entrar, primeiro a sair . Ou seja, os elementos são adicionados por trás e removidos pela frente .

Como usar a fila?

Em Java, devemos importar o java.util.Queuepacote para poder usar Queue.

 // LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue(); 

Aqui, criamos os objetos animal1, animal2 e animal3 das classes LinkedList, ArrayDequee PriorityQueuerespectivamente. Esses objetos podem usar as funcionalidades da Queueinterface.

Métodos de fila

A Queueinterface inclui todos os métodos da Collectioninterface. É porque Collectioné a super interface do Queue.

Alguns dos métodos comumente usados ​​da Queueinterface são:

  • add () - Insere o elemento especificado na fila. Se a tarefa for bem-sucedida, add()retorna true, caso contrário, lança uma exceção.
  • offer () - insere o elemento especificado na fila. Se a tarefa for bem-sucedida, offer()retorna true; caso contrário, retorna false.
  • element () - Retorna o início da fila. Lança uma exceção se a fila estiver vazia.
  • peek () - Retorna o início da fila. Retorna nullse a fila estiver vazia.
  • remove () - Retorna e remove o início da fila. Lança uma exceção se a fila estiver vazia.
  • poll () - Retorna e remove o início da fila. Retorna nullse a fila estiver vazia.

Implementação da Interface de Fila

1. Implementando a classe LinkedList

 import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) ) 

Resultado

 Fila: (1, 2, 3) Elemento acessado: 1 Elemento removido: 1 Fila atualizada: (2, 3) 

Para saber mais, visite Java LinkedList.

2. Implementando a classe PriorityQueue

 import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) ) 

Resultado

 Fila: (1, 5, 2) Elemento acessado: 1 Elemento removido: 1 Fila atualizada: (2, 5) 

Para saber mais, visite Java PriorityQueue.

Nos próximos tutoriais, aprenderemos sobre as diferentes subinterfaces da Queueinterface e sua implementação em detalhes.

Artigos interessantes...