English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Array

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Colecciones Map de Java

Colecciones Set de Java

Java Entrada/Salida (I/)

Reader de Java/Writer

Otras temáticas de Java

Interfaz Deque de Java

En este tutorial, aprenderemos sobre la interfaz Deque, cómo usarla y sus métodos.

La interfaz Deque del marco de colecciones de Java proporciona las funciones de cola de doble extremo (Deque). Hereda de la interfaz Queue.

Principio de funcionamiento de la cola de doble extremo

En la cola normal, los elementos se añaden por detrás y se eliminan por delante. Pero en la cola de doble extremo, podemosInsertar y eliminar elementos desde ambos extremos

Clases que implementan Deque

Para usar las funciones de la interfaz Deque, necesitamos usar las clases que implementan la interfaz:

¿Cómo usar Deque?

En Java, debemos importar el paquete java.util.Deque que queremos usar.

Deque<String> animal1 = new ArrayDeque<>();
Deque<String> animal2 = new LinkedList<>();

Aquí, creamos separadamente los objetos de las clases ArrayDeque y LinkedList animal1y animal2. Estos objetos pueden usar las funciones de la interfaz Deque.

Métodos de la cola de doble extremo

Dado que Deque hereda de la interfaz Queue, por lo tanto, heredala interfaz QueueTodos los métodos.

Además de los métodos disponibles en la interfaz Queue, la interfaz Deque también incluye los siguientes métodos:

  • addFirst() - Añade el elemento especificado al principio de la cola de doble extremo. Si la cola de doble extremo está llena, lanza una excepción.

  • addLast() - Añade el elemento especificado al final de la cola de doble extremo. Si la cola de doble extremo está llena, lanza una excepción.

  • offerFirst() - Añade el elemento especificado al principio de la cola de doble extremo. Si la cola de doble extremo está llena, devuelve false.

  • offerLast() - Agregar el elemento especificado en la cola de la doble cola. Si la doble cola está llena, devuelve false.

  • getFirst() - Devolver el primer elemento de la doble cola. Si la doble cola está vacía, lanza una excepción.

  • getLast() - Devolver el último elemento de la doble cola. Si la doble cola está vacía, lanza una excepción.

  • peekFirst() - Devolver el primer elemento de la doble cola. Si la doble cola está vacía, devuelve null.

  • peekLast() - Devolver el último elemento de la doble cola. Si la doble cola está vacía, devuelve null.

  • removeFirst() - Devolver y eliminar el primer elemento de la doble cola. Si la doble cola está vacía, lanza una excepción.

  • removeLast() - Devolver y eliminar el último elemento de la doble cola. Si la doble cola está vacía, lanza una excepción.

  • pollFirst() - Devolver y eliminar el primer elemento de la doble cola. Si la doble cola está vacía, devuelve null.

  • pollLast() - Devolver y eliminar el último elemento de la doble cola. Si la doble cola está vacía, devuelve null.

Deque como estructura de datos de pila

La clase Stack del framework de colecciones Java proporciona una implementación de pila.

Sin embargo, se recomienda usar Deque en lugar deClase StackEsto se debe a que los métodos de Stack son sincronizados.

A continuación se presentan los métodos proporcionados por la interfaz Deque para implementar pilas:

  • push() - Agregar un elemento en la cabeza de la doble cola

  • pop() - Eliminar un elemento desde el principio de la doble cola

  • peek() - Devolver un elemento desde el principio de la doble cola

Implementación de Deque en la clase ArrayDeque

import java.util.Deque;
import java.util.ArrayDeque;
class Main {
    public static void main(String[] args) {
        // Crear una Deque utilizando la clase ArrayDeque 
        Deque<Integer> numbers = new ArrayDeque<>();
        //Agregar elementos a la Deque
        numbers.offer(1);
        numbers.offerLast(2);
        numbers.offerFirst(3);
        System.out.println("Deque: ") + numbers);
        //Acceder a los elementos de la Deque
        int primerElement = numbers.peekFirst();
        System.out.println("primer elemento: ") + firstElement);
        int lastElement = numbers.peekLast();
        System.out.println("最后一个元素: " + lastElement);
        //从Deque 移除元素
        int removedNumber1 = numbers.pollFirst();
        System.out.println("移除第一个元素: " + removedNumber1);
        int removedNumber2 = numbers.pollLast();
        System.out.println("移除最后一个元素: " + removedNumber2);
        System.out.println("更新后的Deque: " + numbers);
    }
}

输出结果

Deque: [3, 1, 2]
第一个元素: 3
最后一个元素: 2
移除第一个元素: 3
移除最后一个元素: 2
更新后的Deque: [1]

要了解更多信息,请访问ArrayDeque de Java