Neste tutorial, aprenderemos sobre a interface Java Queue e seus métodos.
A Queue
interface da estrutura de coleções Java fornece a funcionalidade da estrutura de dados da fila. Ele estende a Collection
interface.
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 Queue
interface 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.Queue
pacote 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
, ArrayDeque
e PriorityQueue
respectivamente. Esses objetos podem usar as funcionalidades da Queue
interface.
Métodos de fila
A Queue
interface inclui todos os métodos da Collection
interface. É porque Collection
é a super interface do Queue
.
Alguns dos métodos comumente usados da Queue
interface são:
- add () - Insere o elemento especificado na fila. Se a tarefa for bem-sucedida,
add()
retornatrue
, caso contrário, lança uma exceção. - offer () - insere o elemento especificado na fila. Se a tarefa for bem-sucedida,
offer()
retornatrue
; caso contrário, retornafalse
. - 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
null
se 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
null
se 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 Queue
interface e sua implementação em detalhes.