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
Segunda y ultima parte del post dedicado a la creación de un microservicio en lenguaje java utilizando el framework Spar[...]
En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, código de César o desplazamiento de[...]
Crear una librería swing para java utilizando Netbeans no es nada del otro mundo y la cantidad de código que vayamos a e[...]
Alda es un lenguaje de programación desarrollado por Dave Yarwood el cual esta basado en texto para composición musical,[...]
Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta especificación, permite tene[...]
Si bien se pueden encontrar en google estilos java (Look and Feel) listos para cambiar la apariencia de nuestras aplicac[...]