En este tutorial, aprenderemos sobre la interfaz de Deque, cómo usarla y sus métodos.
La Deque
interfaz del marco de colecciones de Java proporciona la funcionalidad de una cola de dos extremos. Extiende la Queue
interfaz.
Trabajo de Deque
En una cola normal, los elementos se agregan desde atrás y se eliminan desde el frente. Sin embargo, en una deque, podemos insertar y quitar elementos tanto de la parte delantera como de la 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 a utilizar Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Aquí, hemos creado los objetos animal1 y animal2 de las clases ArrayDeque y LinkedList, respectivamente. Estos objetos pueden utilizar las funcionalidades de la Deque
interfaz.
Métodos de Deque
Dado que 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 el deque está lleno.
- addLast () : agrega el elemento especificado al final de la deque. Lanza una excepción si el deque está lleno.
- 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 el deque está vacío.
- getLast () : devuelve el último elemento de la deque. Lanza una excepción si el deque está vacío.
- peekFirst () : devuelve el primer elemento de la deque. Devuelve
null
si el deque está vacío. - peekLast () : devuelve el último elemento de la deque. Devuelve
null
si el deque está vacío. - removeFirst () : devuelve y elimina el primer elemento de la deque. Lanza una excepción si el deque está vacío.
- removeLast () : devuelve y elimina el último elemento de la deque. Lanza una excepción si el deque está vacío.
- pollFirst () : devuelve y elimina el primer elemento de la deque. Devuelve
null
si el deque está vacío. - pollLast () : devuelve y elimina el último elemento de la deque. Devuelve
null
si el deque está vacío.
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 utilizarlo Deque
como una pila en lugar de la clase Pila. Es porque los métodos de Stack
están sincronizados.
Estos son los métodos Deque
que proporciona la interfaz para implementar la pila:
push()
- agrega un elemento al comienzo de dequepop()
- elimina un elemento del comienzo de dequepeek()
- devuelve un elemento del comienzo de deque
Implementación de Deque en la clase ArrayDeque
import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque 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 Eliminado Primer elemento: 3 Eliminado Último elemento: 2 Deque actualizado: (1)
Para obtener más información, visite Java ArrayDeque.