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);
[6, 8, 9]
[4, 6, 8, 9, 10]
[6, 8, 9]
imagem mental:
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.1
- Não é tão flexível quanto LinkedList para inserções e remoções no meio da estrutura.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.