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

Genera videos, imagenes y más gratis con Qwen

Qwen es una familia de grandes modelos de lenguaje (LLMs) desarrollado por Alibaba Cloud. Este modelo multimodal es capa[...]

4 IDEs online para java y mucho más

A continuación te muestro 4 herramientas online para programadores en lenguaje Java y otros lenguajes de programación co[...]

Proteger documento PDF con contraseña y limitar permisos desde Java

Los archivos digitales (txt, docx, xlsx, odt, odp, pdf, etc) nos permiten almacenar información el cual en ocasiones, de[...]

Blog MVC – Iniciando el proyecto [p2]

Segunda parte del tutorial [Crea tu blog con el patrón MVC y php]. En esta 2da parte toca ver lo que es la creación del[...]

MAUS :- Simulador y Editor de exámenes para dispositivos móviles

MAUS es una aplicación para dispositivos móviles con el Sistema Operativo Android que te permite realizar exámenes desde[...]

Mapas interactivos con HTML5 – Parte 1

La tecnología de HTML5 y javascript  nos permite crear gráficos interactivos livianos sin tener que recurrir a flash, el[...]