Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / ArrayDeque: Cola doblemente terminada

ArrayDeque: Cola doblemente terminada

Por jc mouse miércoles, enero 18, 2017

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

pila estructura

Cola

cola deque

Cola doblemente terminada

arraydeque

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

netbeans console

Tags

Artículos similares

«Hola Mundo» en kotlin con Eclipse

Kotlin es un lenguaje de programación de tipado estático que corre sobre la máquina virtual de Java y que también puede[...]

Servicio Web SOAP en Java

En este post vamos a construir un Servicio Web bajo el protocolo SOAP (Simple Object Access Protocol) el cual básicament[...]

JavaScript: Script y Web para generar banderas ondeando

Online Flag Waver es una páginas web con la que podemos generar banderas ondeando con la textura que elijamos ya sea des[...]

Convertir imagenes JPEG a video MOV

Googleando me encontré con una interesante clase java «JpegImagesToMovie» que convierte imágenes JPEG a vídeo MOV de[...]

Gráfico de lineas con jfreechart

Los gráficos de líneas muestran una serie como un conjunto de puntos conectados mediante una línea. Los valores se repre[...]

Imprimir Swing

Java Printing nos permite hacer uso de las impresoras del sistema para, valga la redundancia 🙂 imprimir los gráficos de[...]