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 este tutorial veremos la forma de conectarse a una base de datos de Firebird utilizando el lenguaje Java y el IDE Net...
Java nos permite pasar parámetros a una aplicación empaquetada en un *.JAR mediante el MAIN de nuestro programa, pero cl...
Espresso es un framework de testing propiedad de Google que está dirigido a desarrolladores que creen que las pruebas au...
Lenguaje: C# Nivel: Básico 1) Se desea desarrollar un programa que permita introducir una oración por teclado y contar l...
Vue.js es un framework progresivo para la creación de interfaces de usuario de una sola página creado por Evan You. Pero...
En un post anterior [Introducción a VueJS framework para el desarrollo FrontEnd] realizamos una breve introducción a Vue...
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...