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

La
Deque
interfaz del marco de colecciones de Java proporciona la funcionalidad de una cola de doble extremo. Extiende la Queue
interfaz.Trabajo de Deque
En una cola regular, los elementos se agregan desde la parte posterior y se eliminan desde el frente. Sin embargo, en una calcomanía, podemos insertar y eliminar elementos de la parte delantera y trasera .

Clases que implementan Deque
Para usar las funcionalidades de la
Deque
interfaz, necesitamos usar clases que la implementen:- ArrayDeque
- Lista enlazada

¿Cómo usar Deque?
En Java, debemos importar el
java.util.Deque
paquete para usar Deque
.
// Array implementation of Deque
Deque<String> animal1 = new ArrayDeque<>();
// LinkedList implementation of Deque
Deque<String> animal2 = new LinkedList<>();
Aquí, hemos creado objetos animal1 y animal2 de las clases ArrayDeque y LinkedList , respectivamente. Estos objetos pueden usar las funcionalidades de la
Deque
interfaz.Métodos de Deque
Como
Deque
extiende la Queue
interfaz, hereda todos los métodos de la interfaz de cola .
Además de los métodos disponibles en la
Queue
interfaz, la Deque
interfaz también incluye los siguientes métodos:- addFirst () : agrega el elemento especificado al comienzo de la deque. Lanza una excepción si la deque está llena.
- addLast () : agrega el elemento especificado al final de la deque. Lanza una excepción si la deque está llena.
- offerFirst () - Agrega el elemento especificado al comienzo de la deque. Devuelve
false
si el deque está lleno. - offerLast () - Agrega el elemento especificado al final de la deque. Devuelve
false
si el deque está lleno. - getFirst () - Devuelve el primer elemento de la deque. Lanza una excepción si la deque está vacía.
- getLast () - Devuelve el último elemento de la deque. Lanza una excepción si la deque está vacía.
- peekFirst () - Devuelve el primer elemento de la deque. Devuelve
null
si la deque está vacía. - peekLast () - Devuelve el último elemento de la deque. Devuelve
null
si la deque está vacía. - removeFirst () - Devuelve y elimina el primer elemento de la deque. Lanza una excepción si la deque está vacía.
- removeLast () - Devuelve y elimina el último elemento de la deque. Lanza una excepción si la deque está vacía.
- pollFirst () - Devuelve y elimina el primer elemento de la deque. Devuelve
null
si la deque está vacía. - pollLast () - Devuelve y elimina el último elemento de la deque. Devuelve
null
si la deque está vacía.
Deque como estructura de datos de pila
La
Stack
clase del Collections
marco de Java proporciona la implementación de la pila.
Sin embargo, se recomienda usar
Deque
como una pila en lugar de la clase Stack . Es porque los métodos de Stack
están sincronizados.
Estos son los métodos
Deque
que proporciona la interfaz para implementar stack:push()
- agrega un elemento al comienzo de dequepop()
- elimina un elemento desde el principio de dequepeek()
- devuelve un elemento desde el comienzo de deque
Implementación de Deque en ArrayDeque Class
import java.util.Deque;
import java.util.ArrayDeque;
class Main {
public static void main(String[] args) {
// Creating Deque using the ArrayDeque class
Deque<Integer> numbers = new ArrayDeque<>();
// add elements to the Deque
numbers.offer(1);
numbers.offerLast(2);
numbers.offerFirst(3);
System.out.println("Deque: " + numbers);
// Access elements of the Deque
int firstElement = numbers.peekFirst();
System.out.println("First Element: " + firstElement);
int lastElement = numbers.peekLast();
System.out.println("Last Element: " + lastElement);
// Remove elements from the Deque
int removedNumber1 = numbers.pollFirst();
System.out.println("Removed First Element: " + removedNumber1);
int removedNumber2 = numbers.pollLast();
System.out.println("Removed Last Element: " + removedNumber2);
System.out.println("Updated Deque: " + numbers);
}
}
Salida
Deque: [3, 1, 2] Primer elemento: 3 Último elemento: 2 Primer elemento eliminado: 3 Último elemento eliminado: 2 Deque actualizado: [1]
Para obtener más información
ArrayDeque
, visite Java ArrayDeque .
0 Comentarios
Dejanos tu comentario para seguir mejorando!