English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre a interface Java Queue e seus métodos.
A interface Queue do framework de coleções Java fornece funcionalidades de estrutura de dados de fila. Ela herda a interface Collection.
Como Queue é uma interface, não podemos fornecer sua implementação direta.
Para usar as funcionalidades da Queue, precisamos usar a classe que a implementa:
A interface Queue pode ser herdada por várias interfaces subclasses:
Deque
BlockingQueue
BlockingDeque
Na fila, comPrimeiro para o primeiroPara armazenar e acessar elementos. Isso é,Adicionar elementos do lado de trás, excluir elementos do lado de frente.
No Java, é necessário importar o pacote java.util.Queue para usar Queue.
// Criando com LinkedList Queue<String> animal 1 = new LinkedList<>(); // Criado usando ArrayDeque Queue<String> animal 2 = new ArrayDeque<>(); // Criado usando PriorityQueue Queue<String> animal 3 = new PriorityQueue<>();
Aqui, criamos objetos das classes LinkedList, ArrayDeque e PriorityQueue de Animal 1,Animal 2e Animal 3. Esses objetos podem usar as funcionalidades da interface Fila.
A interface Fila inclui todos os métodos da interface Collection. Isso porque Collection é a superinterface da Fila.
Alguns métodos comuns da interface Fila:
add() - Insere o elemento especificado na fila. Se a tarefa for bem-sucedida, o método add() retorna true, caso contrário gera uma exceção.
offer() - Insere o elemento especificado na fila. Se a tarefa for bem-sucedida, o método offer() retorna true, caso contrário retorna false.
element() - Retorna o início da fila. Se a fila estiver vazia, gera uma exceção.
peek() - Retorna o início da fila. Se a fila estiver vazia, retorna null.
remove() - Retorna e remove o início da fila. Se a fila estiver vazia, gera uma exceção.
poll() - Retorna e remove o início da fila. Se a fila estiver vazia, retorna null.
1.Implementar a classe LinkedList
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { // Criar Fila usando a classe LinkedList Queue<Integer> numbers = new LinkedList<>(); //adicionar elemento à Fila numbers.offer( 1); numbers.offer( 2); numbers.offer( 3); System.out.println("Fila: " + numbers); // Acessar elemento da Fila int accessedNumber = numbers.peek(); System.out.println("Acesso a elementos: "); + accessedNumber); //Elemento da Fila da fila int removedNumber = numbers.poll(); System.out.println("Remoção de elementos: "); + removedNumber); System.out.println("Queue atualizada: "); + numbers); } }
Resultados de saída
Queue: [1, 2, 3] Acessar elemento: 1 Remoção de elementos: 1 Queue atualizada: [2, 3]
Para obter mais informações, acesseLinkedList Java.
2.Implementar a classe PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main { public static void main(String[] args) { // Criar fila usando a classe PriorityQueue Queue<Integer> numbers = new PriorityQueue<>(); //adicionar elemento à Fila numbers.offer( 5); numbers.offer( 1); numbers.offer( 2); System.out.println("Fila: " + numbers); //Acesso aos elementos da Queue int accessedNumber = numbers.peek(); System.out.println("Acesso a elementos: "); + accessedNumber); //Remover elementos da Queue int removedNumber = numbers.poll(); System.out.println("Remoção de elementos: "); + removedNumber); System.out.println("Queue atualizada: "); + numbers); } }
Resultados de saída
Queue: [1, 5, 2] Acesso a elementos: 1 Remoção de elementos: 1 Queue atualizada: [2, 5]
Para obter mais informações, acessePriorityQueue Java.
Nos próximos tutoriais, vamos detalhar profundamente os diferentes subinterfaces e suas implementações da interface Queue.