English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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。
Para usar las funciones de la interfaz Deque, necesitamos usar las clases que implementan la interfaz:
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.
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.
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
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。