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
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo...
PHPUnit es un framework que se utiliza para escribir tests en PHP, Netbeans nos permite configurarlo y usarlo fácilmente...
De los diferentes IDE’s que existen para crear aplicaciones para android, lamentablemente Netbeans es una de las m...
Los gráficos de líneas muestran una serie como un conjunto de puntos conectados mediante una línea. Los valores se repre...
iSQL: Es una herramienta de linea de comandos que acompaña a Firebird, se encuentra en la carpeta BIN, sirve para realiz...
La Universidad Leland Stanford Junior, conocida mundialmente como la Universidad Stanford, es una universidad privada es...
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...