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

Manual Básico 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/)

Reader Java/Writer

Outros tópicos Java

Interface Deque Java

Neste tutorial, vamos aprender sobre a interface Deque, como usá-la e seus métodos.

A interface Deque do framework de coleções Java fornece a funcionalidade de fila dupla (Deque). Ela herda a interface Queue.

O funcionamento da fila dupla

Em uma fila comum, os elementos são adicionados pelo final e removidos pelo início. Mas, na fila dupla, podemosInserir e remover elementos de frente e de trás.

Classes que implementam Deque

Para usar as funcionalidades da interface Deque, precisamos usar classes que implementam a interface:

Como usar Deque?

No Java,我们必须o importar o pacote java.util.Deque para usar Deque.

Deque<String> animal1 = new ArrayDeque<>();
Deque<String> animal2 = new LinkedList<>();

Aqui, criamos os objetos dos tipos ArrayDeque e LinkedList chamados animal1e animal2. Esses objetos podem usar as funcionalidades da interface Deque.

Métodos da fila dupla

Como Deque herda a interface Queue, portanto, ela herdada interface QueueTodos os métodos.

Além dos métodos disponíveis na interface Queue, a interface Deque inclui os seguintes métodos:

  • addFirst() - Adicionar o elemento especificado no início da fila dupla. Se a fila dupla já estiver cheia, lançar uma exceção.

  • addLast() - Adicionar o elemento especificado no final da fila dupla. Se a fila dupla já estiver cheia, lançar uma exceção.

  • offerFirst() - Adicionar o elemento especificado no início da fila dupla. Se a fila dupla já estiver cheia, retornar false.

  • offerLast() - Adicionar o elemento especificado no final da fila dupla. Se a fila dupla estiver cheia, retornar false.

  • getFirst() - Retornar o primeiro elemento da fila dupla. Se a fila dupla estiver vazia, lançar exceção.

  • getLast() - Retornar o último elemento da fila dupla. Se a fila dupla estiver vazia, lançar exceção.

  • peekFirst() - Retornar o primeiro elemento da fila dupla. Se a fila dupla estiver vazia, retornar null.

  • peekLast() - Retornar o último elemento da fila dupla. Se a fila dupla estiver vazia, retornar null.

  • removeFirst() - Retornar e remover o primeiro elemento da fila dupla. Se a fila dupla estiver vazia, lançar exceção.

  • removeLast() - Retornar e remover o último elemento da fila dupla. Se a fila dupla estiver vazia, lançar exceção.

  • pollFirst() - Retornar e remover o primeiro elemento da fila dupla. Se a fila dupla estiver vazia, retornar null.

  • pollLast() - Retornar e remover o último elemento da fila dupla. Se a fila dupla estiver vazia, retornar null.

Fila dupla como estrutura de dados de pilha

A classe Stack do framework Java Collections fornece uma implementação de pilha.

No entanto, é recomendável usar Deque como pilha em vez deClasse StackIsso é porque os métodos da pilha são sincronizados.

A seguir estão os métodos fornecidos pela interface Deque para implementação de pilha:

  • push() - Adicionar elemento na extremidade inicial da fila dupla

  • pop() - Remover elemento da extremidade inicial da fila dupla

  • peek() - Retornar um elemento da extremidade inicial da fila dupla

Implementação do Deque na classe ArrayDeque

import java.util.Deque;
import java.util.ArrayDeque;
class Main {
    public static void main(String[] args) {
        // Criar Deque usando a classe ArrayDeque 
        Deque<Integer> numbers = new ArrayDeque<>();
        //Adicionar elementos ao Deque
        numbers.offer(1);
        numbers.offerLast(2);
        numbers.offerFirst(3);
        System.out.println("Deque: ") + numbers);
        //Acessar elementos do Deque
        int firstElement = numbers.peekFirst();
        System.out.println("Primeiro elemento: ") + firstElement);
        int lastElement = numbers.peekLast();
        System.out.println("Last element: " + lastElement);
        //Remove element from Deque
        int removedNumber1 = numbers.pollFirst();
        System.out.println("Remove the first element: " + removedNumber1);
        int removedNumber2 = numbers.pollLast();
        System.out.println("Remove the last element: " + removedNumber2);
        System.out.println("Updated Deque: " + numbers);
    }
}

Output result

Deque: [3, 1, 2]
First element: 3
Last element: 2
Remove the first element: 3
Remove the last element: 2
Updated Deque: [1]

For more information, please visitArrayDeque Java.