ArrayDeque.

Serie - Fundamentos de Estrutura de Dados Elementar com Java.


ArrayDeque. Como funciona o Double-Ended Queues.

  O ArrayDeque, usa uma variação de uma estrutura de dados chamada Deque (ou Double-Ended Queues), que é uma estrutura que combina características familiares com um toque único. Aqui, você pode realizar operações em ambas as extremidades, criando assim um híbrido entre as estruturas de dados Stack e PriorityQueue.

  Imagine a versatilidade de uma queue padrão, como a PriorityQueue, mas com a distinção de executar operações em ambas as cabeças (extremidades), é assim o funcionamento de uma deque. O ArrayDeque redefine o jogo, permitindo que você adicione e remova elementos tanto no início quanto no final da deque, criando uma abordagem única para manipulação de dados em "ambos os lados".

  exemplo em código:

var numbersDeque = new ArrayDeque<Integer>();
numbersDeque.add(6);
numbersDeque.add(8);
numbersDeque.add(9);
System.out.println(numbersDeque);
numbersDeque.addFirst(4);
numbersDeque.addLast(10);
System.out.println(numbersDeque);
numbersDeque.removeFirst();
numbersDeque.removeLast();
System.out.println(numbersDeque);
Output (clique)

  [6, 8, 9]
  [4, 6, 8, 9, 10]
  [6, 8, 9]

  imagem mental:

  ArrayDeque Java

Vantagens e Desvantagens

Vantagens
  • 1 - Fornece operações eficientes de fila e pilha, sendo um híbrido das duas.
  • 2 - Acesso rápido ao início e ao final da deque.
Desvantagens
  • 1 - Não é tão flexível quanto LinkedList para inserções e remoções no meio da estrutura.

Uso comum

  Implementação eficiente de fila e pilha, especialmente em algoritmos onde operações de inserção e remoção em ambas as extremidades são frequentes.

  Cenário de uso: Em um sistema de processamento de eventos em tempo real, um ArrayDeque pode ser usado para armazenar eventos recentes, permitindo rápida adição e remoção tanto no início quanto no final da lista.