En este tutorial, aprenderemos sobre la interfaz Java Queue y sus métodos.
La Queue
interfaz del marco de colecciones de Java proporciona la funcionalidad de la estructura de datos de la cola. Extiende la Collection
interfaz.
Clases que implementan cola
Dado que Queue
es una interfaz, no podemos proporcionar la implementación directa de la misma.
Para usar las funcionalidades de Queue
, necesitamos usar clases que lo implementen:
- ArrayDeque
- Lista enlazada
- PriorityQueue
Interfaces que amplían la cola
La Queue
interfaz también se amplía con varias subinterfaces:
Deque
BlockingQueue
BlockingDeque
Trabajo de la estructura de datos de la cola
En las colas, los elementos se almacenan y se accede a ellos de la manera primero en entrar, primero en salir . Es decir, los elementos se agregan desde atrás y se eliminan desde el frente .
¿Cómo usar Queue?
En Java, debemos importar el java.util.Queue
paquete para poder usar Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Aquí, hemos creado objetos animal1, animal2 y animal3 de clases LinkedList
, ArrayDeque
y PriorityQueue
respectivamente. Estos objetos pueden utilizar las funcionalidades de la Queue
interfaz.
Métodos de cola
La Queue
interfaz incluye todos los métodos de la Collection
interfaz. Es porque Collection
es la super interfaz de Queue
.
Algunos de los métodos de Queue
interfaz más utilizados son:
- add () : inserta el elemento especificado en la cola. Si la tarea es exitosa,
add()
regresatrue
, si no, lanza una excepción. - oferta () : inserta el elemento especificado en la cola. Si la tarea tiene éxito,
offer()
regresatrue
, si no, regresafalse
. - element () : devuelve el encabezado de la cola. Lanza una excepción si la cola está vacía.
- peek () : devuelve el encabezado de la cola. Devuelve
null
si la cola está vacía. - remove () : devuelve y elimina el encabezado de la cola. Lanza una excepción si la cola está vacía.
- poll () : devuelve y elimina el encabezado de la cola. Devuelve
null
si la cola está vacía.
Implementación de la interfaz de cola
1. Implementación de la clase LinkedList
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Salida
Cola: (1, 2, 3) Elemento accedido: 1 Elemento eliminado: 1 Cola actualizada: (2, 3)
Para obtener más información, visite Java LinkedList.
2. Implementación de la clase PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Salida
Cola: (1, 5, 2) Elemento accedido: 1 Elemento eliminado: 1 Cola actualizada: (2, 5)
Para obtener más información, visite Java PriorityQueue.
En los próximos tutoriales, aprenderemos sobre las diferentes subinterfaces de la Queue
interfaz y su implementación en detalle.