Una cola doblemente terminada o deque es una estructura de datos lineal que permite insertar y eliminar elementos por ambos extremos, es decir implementa en una única estructura las funcionalidades de las pilas (estructuras LIFO) y las colas (estructuras FIFO), en otras palabras, estas estructuras podrían implementarse fácilmente con una deque.
Pila
Cola
Cola doblemente terminada
Java incluye la clase ArrayDeque miembro de Java Collections Framework, clase más robusta y completa que la clase Stack y tambien más rapida al ser usada como pila, más rápido que LinkedList cuando se utiliza como una cola . No tienen restricciones de capacidad, crecen según sea necesario, no admite elementos nulos.
Ejemplo
import java.util.ArrayDeque; public class ArrayDequeTest { static ArrayDeque<Integer> deque; public static void main(String[] args) { // Crea un array vacio deque = new ArrayDeque<>(); // usa metodo add() para agregar elementos deque.add(45); deque.add(27); deque.add(98); deque.add(19); print("ArrayDeque"); deque.addFirst(99); print("Se agrega elemento ["+99+"] al principio"); deque.addLast(77); print("Se agrega elemento ["+77+"] al final"); //obtiene primer elemento de la cola int a = deque.getFirst(); //obtiene ultimo elemento de la cola int b = deque.getLast(); print("Primer elemento ["+a+"] .:. Ultimo elemento ["+b+"]"); //elimina elementos deque.removeFirst(); deque.removeLast(); print("Elimina primer y ultimo elemento"); //obtiene primer elemento de la cola a = deque.peekFirst(); //obtiene ultimo elemnto de la cola b = deque.peekLast(); print("Primer elemento ["+a+"] Ultimo elemento ["+b+"]"); //elimina y obtiene el primer elemento de la cola a = deque.pop(); print("elimina Primer elemento ["+a+"]"); deque.push(69); print("agrega elemento ["+69+"]"); deque.removeLastOccurrence(98); print("elimina elemento ["+98+"]"); System.out.println("Tamaño de la cola " + deque.size()); } public static void print(String text){ System.out.println(text); deque.stream().forEach((number) -> { System.out.print("| " + number + " |"); }); System.out.println("\n"); } }
Salida en Pantalla
Qwen es una familia de grandes modelos de lenguaje (LLMs) desarrollado por Alibaba Cloud. Este modelo multimodal es capa[...]
A continuación te muestro 4 herramientas online para programadores en lenguaje Java y otros lenguajes de programación co[...]
Los archivos digitales (txt, docx, xlsx, odt, odp, pdf, etc) nos permiten almacenar información el cual en ocasiones, de[...]
Segunda parte del tutorial [Crea tu blog con el patrón MVC y php]. En esta 2da parte toca ver lo que es la creación del[...]
MAUS es una aplicación para dispositivos móviles con el Sistema Operativo Android que te permite realizar exámenes desde[...]
La tecnología de HTML5 y javascript nos permite crear gráficos interactivos livianos sin tener que recurrir a flash, el[...]