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
El cifrado francmasón es un cifrado por sustitución simple que cambia las letras por símbolos. Sin embargo, el uso de sí[...]
En este y un segundo post desarrollaremos un microservicio java utilizando el framework Spark que implementara las funci[...]
Desde que se crearon los videojuegos para computadora, el espacio de almacenamiento y memoria han sido siempre un proble[...]
En este tutorial crearemos un interesante efecto de explosión al momento de abrir un JPanel, este efecto puede extenders[...]
Este es una continuación de un tutorial pasado [Funciones en PostgreSQL y pgAdmin], así que si quieres entenderlo mucho[...]
En este post iremos conociendo de un modo práctico que es y como se utiliza un Array en java, para esto partiremos de un[...]