English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

Conjunto Java Map

Conjunto Java Set

Java Entrada e Saída (I/O)

Reader Java/Writer

Outros tópicos Java

Interface Queue Java

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.

Classes que implementam a fila

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:

Interface herdada de Queue

A interface Queue pode ser herdada por várias interfaces subclasses:

  • Deque

  • BlockingQueue

  • BlockingDeque

O fluxo de trabalho da estrutura de dados de fila

Na fila, comPrimeiro para o primeiroPara armazenar e acessar elementos. Isso é,Adicionar elementos do lado de trás, excluir elementos do lado de frente.

Como usar a fila (Queue)?

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.

Métodos da 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.

Implementação da interface Fila

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.